Blog ก่อนหน้าเราเคยพูดถึงการ dump memory ของ Linux ออกมา วันนี้เราจะมาดูเรื่องของการวิเคราะห์ memory แบบคร่าวๆด้วย Volatility กันต่อครับ
1. ติดตั้ง Volatility
1 2 3 4 5 6 |
apt-get install dwarfdump<em> </em>pip install pycrypto distorm3 git clone https://github.com/volatilityfoundation/volatility cd volatility/tools/linux/ make clean make |
หากเจอ error
1 |
DW_DLE_UNKNOWN_FORM (242) Possibly corrupt DWARF data (242) |
ให้ compile dwarfdump ใหม่เอง แล้วค่อย make
1 2 3 4 5 6 7 8 |
git clone https://github.com/tomhughes/libdwarf.git apt-get install libelf1 libelf-dev cd libdwarf/ ./configure make dd cp dwarfdump/dwarfdump /usr/local/bin/ cp dwarfdump/dwarfdump.conf /usr/local/lib/ cp libdwarf/libdwarf.a /usr/local/lib |
2. ตรวจสอบ Kernel header version ที่ใช้ในเครื่องที่ dump memory ออกมา
1 |
ls -al /boot/ |
จากภาพจะเห็นว่าเป็น System.map-4.8.0-41-generic ครับ
3. สร้าง Linux Profile โดยใช้คำสั่ง
1 |
zip ubuntu16.04.zip /opt/volatility/tools/linux/module.dwarf /boot/System.map-4.8.0-41-generic |
จากนั้นนำไปไว้ที่
1 |
/opt/volatility/volatility/plugins/overlays/linux/ |
4. ทดสอบอ่าน memory ที่ dump มาโดยใช้คำสั่ง
1 |
python vol.py -f /root/test.mem imageinfo |
1 |
volatility --info | grep Linux |
จะเห็น profile ของ Ubuntu 16.04 โผล่ขึ้นมา
ทีนี้หากเราต้องการ list ว่ามีคำสั่งอะไรที่ใช้กับ Linux memory ได้บ้างก็ใช้คำสั่ง
1 |
python ./vol.py --info | grep -i linux_ |
ที่เหลือก็แล้วแต่เราเลยครับว่าจะใช้คำสั่งอะไรของ volatility บ้างครับ
Source:: JamesBower, rootusers