Marcus1337
VIP Members
-
01/04/2021
-
62
-
76 bài viết
[Expl0it_Z3r0_T0_H3r0] Bài 2: Thực hành làm quen với Linux
Learning Path:
man sẽ cung cấp cho người dùng thông tin chi tiết về tên chương trình, tóm tắt và các tham số của chương trình. Ngoài cung cấp thông tin hướng dẫn về các chương trình, commands có trên linux thì man còn cung cấp các tài liệu về hệ thống như Programming interfaces for kernel system calls, Programming interfaces to the C library, các file đặc biệt như device nodes và drivers, File formats, trò chơi ...
Thành thạo và tận dụng tốt lệnh man giúp cho bạn hiểu sâu hơn về các lệnh có trên hệ thống và sử dụng tốt các lệnh hơn ít bị phụ thuộc vào google.
Khi muốn tìm hiểu lệnh ls các mạn gõ: man ls
Hoặc là lệnh thay đổi đổi thư mục trên hệ thống : man cd
Để thoát khỏi trang hướng dẫn các bạn nhấn phím q
Ngoài ra man còn hỗ trợ tùy chọn -k để tìm kiếm các tài liệu liên quan đến từ khóa. Vi dụ mình cần kiếm các chương trình liên quan đến password trên linux mình sẽ tìm kiếm các tài liệu liên quan bằng lệnh: man -k password
Ngoài ra các bạn có thể tìm hiểu thêm về lệnh apropos cũng có chức năng tương tự lệnh man
Lưu ý :
-a : để hiện thị thêm file, thư mục ẩn có trong folder ( Trong linux các file và thư mục đặt tên có dấu . ở đầu là các file ẩn sẽ không hiển thị ra giao diện của người dùng )
-l : hiển thị thêm các thông tin của file : Quyền, user, group, kích thước, ngày sửa đổi gần nhất
Ở trên lệnh ls -la để hiện thị các file và thư mục có trong thư mục gốc. Và bạn cũng có thể xem thông tin duy nhất 1 file bằng cách để tên file hoặc folder trong tham số lệnh.
ls cũng hỗ trợ wildcard dùng ký tự * đại diện cho các ký tự khác. Ví dụ muốn liệt kê các file .conf trong thư mục etc ta dùng lệnh : ls -la /etc/*.conf
Các shortcut thường hay dùng nhất là:
Trên đây là các lệnh cơ bản hay dùng. Có rất nhiều lệnh hệ thống khác bạn sẽ gặp trong quá trình sử dụng. Có thể sử dụng lệnh man để kiếm các tham số và đầu vào hợp lý dùng cho các lệnh này hoặc là các bạn có thể đọc thêm các bài viết về lệnh linux.
Biến môi trường được tham chiếu phổ biến nhất là PATH, đây là biến chứa danh sách các đường dẫn thư mục được phân tách bằng dấu hai chấm mà Bash sẽ tìm kiếm bất cứ khi nào một lệnh được chạy mà không có đường dẫn đầy đủ.
Để xem giá trị của biến thì có thể sử dụng lệnh echo kết hợp với ký tự $ ở phía đầu tên biến. Ví dụ xem gía trị của biến PATH:
Một số biến môi trường đặc biệt khác như [imath]USER,[/imath]PWD, [imath]HOME ,[/imath]$( Hiện thị process id hiện tại)
Để đặt giá trị cho biến môi trường ta dùng lệnh export với cú pháp:
Lưu ý sẽ không có dấu cách giữa tên biến, dấu bằng và giá trị. Giá trị của biến môi trường chỉ tồn tại trong phiên của terminal hiện tại lúc mở terminal mới sẽ không đọc được các giá trị này.
Để xem các biến môi trường có trong hệ thống ta sử dụng lệnh env
Để xem history sử dụng lệnh history
Các bạn có thể tùy chỉnh số lượng các lệnh được lưu lại qua 2 tham số HISTSIZE, HISTFILESIZE
Thực tế khi pentest cần lưu lại history phục vụ ghi chú thì mình thường ít khi sử dụng bash history mặc định của Linux vì lý do đơn giản là history chỉ lưu lại các lệnh chứ không có kết quả các output của các lệnh này. Ví dụ muốn xem lại lệnh nmap thì cũng khó.
Mình hay sử dụng lệnh script trên linux để lưu các kết quả in ra màn hình vào 1 file và sau đó xem lại khi cần hoặc đưa vào ghi chú trong quá trình tấn công.
Ở lệnh trên mình sẽ lưu toàn bộ kết quả vào file test-site-testphp-vulnweb-com.log. Sau khi chạy lệnh thì toàn bộ thao tác mình trên terminal vào output của các lệnh sẽ đều được lưu vào file. Các bạn phải sử dụng lệnh exit để dừng lại việc ghi log.
Bài viết hôm nay mình xin dừng lại ở đây. Mấy phần đầu sẽ thiên về kiến thức trên linux chưa đi sâu vào hacking để những bạn mới có thể có cái base đầu tiên nên các bạn biết rồi thông cảm nhé. Cảm ơn các bạn đã theo dõi.
Bài tập:
- Linux basic for hacking part1: Giới thiệu về Linux, hướng dẫn chọn distro
- Linux basic for hacking part2: Thực hành làm quen với Linux
- Linux basic for hacking part3: Một số lệnh Linux cơ bản
Linux file system
Filesystem Hierarchy Standard, viết tắt là FHS, là một tiêu chuẩn thiết kế các thư mục trong hệ thống các distributions Linux. Filesystem Hierarchy Standard được tạo ra và maintain bởi Linux Foundation. Chi tiết về FHS là khá dài các bạn có thể tham khảo bài viết này. Thành thạo về FHS sẽ giúp bạn tìm kiếm các file trong hệ thống linux một cách dễ dàng hơn. Mình xin lược lại một số file và directory quan trọng trong Linux mà các bạn nên để ý vì sẽ dùng rất nhiều:- /bin : Là thư mục chứa các file thực thi là các command thiết yếu của hệ thống ( Thường được cài mặc định theo OS) điển hình như ls, cd, cat , cp, mkdir ...
- /boot : chứa tất cả các files cần thiết cho quá trình boot hệ thống.
- /dev : chứa các device files. Các phân vùng ổ cứng, thiết bị ngoại vi như USB, ổ đĩa cắm ngoài, hay bất cứ thiết bị nào gắn kèm vào hệ thống đều được lưu ở đây.
- /etc : Thư mục chứa các file config của hệ thống. Thông thường, config của các chương trình được đặt trong một thư mục con bên trong /etc ( /etc/apache2/apache2.config, /etc/nginx/nginx.conf ...)
- /home : Thư mục chứa các file cá nhân của người dùng
- /lib : là thư mục chứa các file libraries cần thiết cho việc boot hệ thống, cũng như để thực thi các câu lệnh bên trong /bin/ và /sbin
- /media : Thư mục tạm này chứa các thiết bị như CdRom /media/cdrom. floppy /media/floopy hay các phân vùng đĩa cứng /media/Data (hiểu như là ổ D:/Data trong Windows)
- /mnt : là thư mục chứa các filesystems được mount tạm thời
- /opt : chứa các ứng dụng thêm vào từ các nhà cung cấp độc lập khác. Các ứng dụng này có thể được cài ở /opt hoặc một thư mục con của /opt
- /proc : viết tắt của process, là thư mục chứa các process đang chạy hay thông tin về kernel ở dạng files.
- /root : là thư mục home cho user root của hệ thống
- /run : là thư mục chứa thông tin về hệ thống đang chạy,
- /sbin : cũng giống như /bin, /sbinn cũng chứa các chương trình thực thi, nhưng chúng là những chương trình thường dành cho supper admin cần có quyền root để thực thi ( Vd: reboot, fdisk, iptables... )
- /srv : là thư mục chứa data được cung cấp ra bên ngoài bởi hệ thống
- /sys : là nơi chứa các thông tin về devices, drivers, kernel
- /tmp : Thư mục này chứa các file tạm thời được tạo bởi hệ thống và các người dùng. Các file lưu trong thư mục này sẽ bị xóa khi hệ thống khởi động lại. Thư mục này các user đều có quyền ghi vào đây. Do đó cũng hay được lợi dụng để ghi các file tạm trong quá trình tấn công máy chủ
- /usr: Chứa các thư viện, file thực thi, tài liệu hướng dẫn và mã nguồn cho chương trình chạy ở level 2 của hệ thống. Trong đó:
- /usr/bin chứa các file thực thi của người dùng như: at, awk, cc, less... Nếu bạn không tìm thấy chúng trong /bin hãy tìm trong /usr/bin
- /usr/sbin chứa các file thực thi của hệ thống dưới quyền của admin như: atd, cron, sshd... Nếu bạn không tìm thấy chúng trong /sbin thì hãy tìm trong thư mục này.
- /usr/lib chứa các thư viện cho các chương trình trong /usr/bin và /usr/sbin
- /usr/local chứa các chương tình của người dùng được cài từ mã nguồn. Ví dụ như bạn cài apache từ mã nguồn, nó sẽ được lưu dưới /usr/local/apache2
- /var : Thông tin về các biến của hệ thống được lưu trong thư mục này. Như thông tin về log file: /var/log, các gói và cơ sở dữ liệu /var/lib...
Một số lệnh điều khiển cơ bản
Trong bài viết này mình sẽ giới thiệu các bạn các lệnh cơ bản nhất để bắt đầu dùng với hệ thống linux. Ngoài ra khi nói đến chủ đề khác mình sẽ giới thiệu thêm các lệnh khác để giải quyết một bài toán cụ thể trong các bài toán sau:- man : Hầu hết các chương trình thực thi dành cho dòng lệnh Linux đều có tài liệu hướng dẫn người dùng và giới thiệu chương trình. Thì man là chương trình đặc biệt trong Linux dùng để hiển thị và tìm kiếm các tài liệu này.
Mã:
➜ ~ man --help
man, version 1.6g
usage: man [-adfhktwW] [section] [-M path] [-P pager] [-S list]
[-m system] [-p string] name ...
a : find all matching entries
c : do not use cat file
d : print gobs of debugging information
D : as for -d, but also display the pages
f : same as whatis(1)
h : print this help message
k : same as apropos(1)
K : search for a string in all pages
t : use troff to format pages for printing
w : print location of man page(s) that would be displayed
(if no name given: print directories that would be searched)
W : as for -w, but display filenames only
C file : use `file' as configuration file
M path : set search path for manual pages to `path'
P pager : use program `pager' to display pages
S list : colon separated section list
m system : search for alternate system's man pages
p string : string tells which preprocessors to run
e - [n]eqn(1) p - pic(1) t - tbl(1)
g - grap(1) r - refer(1) v - vgrind(1)
man sẽ cung cấp cho người dùng thông tin chi tiết về tên chương trình, tóm tắt và các tham số của chương trình. Ngoài cung cấp thông tin hướng dẫn về các chương trình, commands có trên linux thì man còn cung cấp các tài liệu về hệ thống như Programming interfaces for kernel system calls, Programming interfaces to the C library, các file đặc biệt như device nodes và drivers, File formats, trò chơi ...
Thành thạo và tận dụng tốt lệnh man giúp cho bạn hiểu sâu hơn về các lệnh có trên hệ thống và sử dụng tốt các lệnh hơn ít bị phụ thuộc vào google.
Khi muốn tìm hiểu lệnh ls các mạn gõ: man ls
Hoặc là lệnh thay đổi đổi thư mục trên hệ thống : man cd
Để thoát khỏi trang hướng dẫn các bạn nhấn phím q
Ngoài ra man còn hỗ trợ tùy chọn -k để tìm kiếm các tài liệu liên quan đến từ khóa. Vi dụ mình cần kiếm các chương trình liên quan đến password trên linux mình sẽ tìm kiếm các tài liệu liên quan bằng lệnh: man -k password
Ngoài ra các bạn có thể tìm hiểu thêm về lệnh apropos cũng có chức năng tương tự lệnh man
- ls : Lệnh ls dùng để liệt kê các file và thư mục ra màn hình
Lưu ý :
-a : để hiện thị thêm file, thư mục ẩn có trong folder ( Trong linux các file và thư mục đặt tên có dấu . ở đầu là các file ẩn sẽ không hiển thị ra giao diện của người dùng )
-l : hiển thị thêm các thông tin của file : Quyền, user, group, kích thước, ngày sửa đổi gần nhất
Ở trên lệnh ls -la để hiện thị các file và thư mục có trong thư mục gốc. Và bạn cũng có thể xem thông tin duy nhất 1 file bằng cách để tên file hoặc folder trong tham số lệnh.
ls cũng hỗ trợ wildcard dùng ký tự * đại diện cho các ký tự khác. Ví dụ muốn liệt kê các file .conf trong thư mục etc ta dùng lệnh : ls -la /etc/*.conf
- cd : Dùng để di chuyển giữa các thư mục
Các shortcut thường hay dùng nhất là:
- ~ : Di chuyển đến thư mục home của user
- / : Di chuyển đến thư mục gốc
- ../ : Di chuyển về thư mục cha ngay liền trước( Một ký tự ../ đại diện cho 1 thư mục cha)
- pwd : Xem vị trí thư mục hiện tại
Mã:
➜ mkdir folder1
➜ ls
folder1
➜ mkdir folder2 folder3
➜ test ls
folder1 folder2 folder3
Có thể tạo nhiều thư mục cùng lúc ở các cấp khác nhau khi thư mục mẹ chưa được tạo bằng tùy chọn -p
➜ mkdir -p test/{recon,exploit,report}
➜ ls test
recon exploit report[/CODE}
[*]cp : Dùng để copy file thư mục trong linux
[/LIST]
[CODE] cp [option] [option2] source1 source2 destination
- mv : Lệnh mv (viết tắt của move) được sử dụng để đổi tên và di chuyển các file và thư mục từ vị trí này sang vị trí khác
Mã:
mv [OPTIONS] SOURCE DESTINATION
- which : xác định vị trí file thực thi của lệnh mà bạn truyền vào. Lệnh này sẽ tìm kiếm các đường dẫn trong biến môi trường PATH, so khớp và trả về kết quả tương ứng với lệnh truyền vào
Mã:
which [OPTIONS] FILE_NAME
- locate : Lệnh locate tìm kiếm một pattern (mẫu) nhất định thông qua file cơ sở dữ liệu được tạo bởi lệnh updatedb. Thay vì tìm kiếm ở 1 folder nhất định như lệnh which thì locate tìm kiếm được phạm vi rộng hơn dựa vào db các file mà locate đã thu thâp được
Mã:
locate [OPTION] PATTERN...
- find : Lệnh Find được sử dụng để tìm kiếm các file và thư mục, dựa trên các điều kiện mà bạn chỉ định cho các file thông qua các tham số. Đây là lệnh tìm kiếm hay dùng nhất và cũng linh hoạt hơn 2 lệnh tìm kiếm ở trên.
- whoami : Để hiển thị tên của người dùng hiện đang đăng nhập thì hãy gọi lệnh này mà không truyền tham số hay tùy chọn nào cả.
Mã:
whoami [OPTION]
Trên đây là các lệnh cơ bản hay dùng. Có rất nhiều lệnh hệ thống khác bạn sẽ gặp trong quá trình sử dụng. Có thể sử dụng lệnh man để kiếm các tham số và đầu vào hợp lý dùng cho các lệnh này hoặc là các bạn có thể đọc thêm các bài viết về lệnh linux.
Bash Environment
Khi mở cửa terminal mới, các biến môi trường sẽ được khởi tạo. Biến môi trường là giá trị động ảnh hưởng đến phần mềm và tiến trình hoạt động trên server. Thường các chương trình sẽ lưu các thông tin config trên biến môi trường. Do đó ở các bài CTF, hay exploit chúng ta thường sẽ hay tìm thấy flag hoặc biến secret bằng cách xem biến môi trường của hệ thống.Biến môi trường được tham chiếu phổ biến nhất là PATH, đây là biến chứa danh sách các đường dẫn thư mục được phân tách bằng dấu hai chấm mà Bash sẽ tìm kiếm bất cứ khi nào một lệnh được chạy mà không có đường dẫn đầy đủ.
Để xem giá trị của biến thì có thể sử dụng lệnh echo kết hợp với ký tự $ ở phía đầu tên biến. Ví dụ xem gía trị của biến PATH:
Mã:
┌──(parallels㉿kali-linux-2021-1)-[~]
└─$ echo $PATH
/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Mã:
┌──(parallels㉿kali-linux-2021-1)-[~]
└─$ echo $USER
parallels
┌──(parallels㉿kali-linux-2021-1)-[~]
└─$ echo $PWD
/home/parallels/test
┌──(parallels㉿kali-linux-2021-1)-[~]
└─$ echo $HOME
/home/parallels/
┌──(parallels㉿kali-linux-2021-1)-[~]
└─$ echo $$
1909
Mã:
export [variable_name]=[value]
Mã:
┌──(parallels㉿kali-linux-2021-1)-[~]
└─$ export test="Whitehat"
┌──(parallels㉿kali-linux-2021-1)-[~]
└─$ echo $test
Whitehat
┌──(parallels㉿kali-linux-2021-1)-[~]
└─$ export domain="testphp.vulnweb.com"
┌──(parallels㉿kali-linux-2021-1)-[~]
└─$ ping -c 4 $domain
PING testphp.vulnweb.com (18.192.172.30): 56 data bytes
64 bytes from 18.192.172.30: icmp_seq=0 ttl=39 time=276.592 ms
64 bytes from 18.192.172.30: icmp_seq=1 ttl=39 time=217.961 ms
64 bytes from 18.192.172.30: icmp_seq=2 ttl=39 time=344.041 ms
64 bytes from 18.192.172.30: icmp_seq=3 ttl=39 time=227.326 ms
--- testphp.vulnweb.com ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 217.961/266.480/344.041/50.013 ms
Mã:
┌──(parallels㉿kali-linux-2021-1)-[~]
└─$ env
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
SESSION_MANAGER=local/kali-linux-2021-1:@/tmp/.ICE-unix/2003,unix/kali-linux-2021-1:/tmp/.ICE-unix/2003
GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/f317aa3b_15a9_4b2c_83fd_ad6906422395
SSH_AGENT_PID=1960
XDG_CURRENT_DESKTOP=GNOME
LANG=en_US.UTF-8
PWD=/home/parallels
QT_IM_MODULE=ibus
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
USER=parallels
DESKTOP_SESSION=gnome-xorg
XDG_MENU_PREFIX=gnome-
HOME=/home/parallels
COMMAND_NOT_FOUND_INSTALL_PROMPT=1
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
GTK_MODULES=gail:atk-bridge
XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/
WINDOWPATH=2
XDG_SESSION_DESKTOP=gnome-xorg
QT_ACCESSIBILITY=1
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
VTE_VERSION=6203
QT_AUTO_SCREEN_SCALE_FACTOR=0
GNOME_TERMINAL_SERVICE=:1.84
LOGNAME=parallels
PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
XMODIFIERS=@im=ibus
SHELL=/usr/bin/zsh
XDG_SESSION_TYPE=x11
POWERSHELL_TELEMETRY_OPTOUT=1
_JAVA_OPTIONS=-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
USERNAME=parallels
XDG_RUNTIME_DIR=/run/user/1000
QT_QPA_PLATFORMTHEME=qt5ct
XAUTHORITY=/run/user/1000/gdm/Xauthority
GDM_LANG=en_US.UTF-8
COLORTERM=truecolor
XDG_SESSION_CLASS=user
TERM=xterm-256color
GDMSESSION=gnome-xorg
DISPLAY=:1
SHLVL=1
OLDPWD=/ 2 ⨯SSH_AUTH_SOCK=/run/user/1000/keyring/sshSESSION_MANAGER=local/kali-linux-2021-1:@/tmp/.ICE-unix/2003,unix/kali-linux-2021-1:/tmp/.ICE-unix/2003GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/f317aa3b_15a9_4b2c_83fd_ad6906422395SSH_AGENT_PID=1960XDG_CURRENT_DESKTOP=GNOMELANG=en_US.UTF-8PWD=/home/parallelsQT_IM_MODULE=ibusGPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1USER=parallelsDESKTOP_SESSION=gnome-xorgXDG_MENU_PREFIX=gnome-HOME=/home/parallelsCOMMAND_NOT_FOUND_INSTALL_PROMPT=1DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/busGTK_MODULES=gail:atk-bridgeXDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/WINDOWPATH=2XDG_SESSION_DESKTOP=gnome-xorgQT_ACCESSIBILITY=1GNOME_DESKTOP_SESSION_ID=this-is-deprecatedVTE_VERSION=6203QT_AUTO_SCREEN_SCALE_FACTOR=0GNOME_TERMINAL_SERVICE=:1.84LOGNAME=parallelsPATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/gamesXMODIFIERS=@im=ibusSHELL=/usr/bin/zshXDG_SESSION_TYPE=x11POWERSHELL_TELEMETRY_OPTOUT=1_JAVA_OPTIONS=-Dawt.useSystemAAFontSettings=on -Dswing.aatext=trueUSERNAME=parallelsXDG_RUNTIME_DIR=/run/user/1000QT_QPA_PLATFORMTHEME=qt5ctXAUTHORITY=/run/user/1000/gdm/XauthorityGDM_LANG=en_US.UTF-8COLORTERM=truecolorXDG_SESSION_CLASS=userTERM=xterm-256colorGDMSESSION=gnome-xorgDISPLAY=:1SHLVL=1OLDPWD=/
Bash History
Trong khi làm việc với Bash shell thì việc xem lại lịch sử các lệnh rất cần thiết. Đối với bash có sẵn cơ chế ghi history mặc định vào file .bash_history trong thư mục gốc của user. Đây là file ẩn nên cần tùy chọn -a để hiển thị file này nhé.
Mã:
┌──(parallels㉿kali-linux-2021-1)-[~]
└─$ ls -la
total 112
drwxr-xr-x 16 parallels parallels 4096 May 13 10:18 .
drwxr-xr-x 3 root root 4096 Mar 16 02:09 ..
-rw-r--r-- 1 parallels parallels 220 Mar 16 02:09 .bash_logout
-rw-r--r-- 1 parallels parallels 4705 Mar 16 02:09 .bashrc
-rw-r--r-- 1 parallels parallels 3526 Mar 16 02:09 .bashrc.original
drwxr-xr-x 9 parallels parallels 4096 May 13 22:29 .cache
drwx------ 11 parallels parallels 4096 May 13 10:18 .config
drwxr-xr-x 2 parallels parallels 4096 May 13 22:29 Desktop
drwxr-xr-x 2 parallels parallels 4096 May 13 22:29 Documents
drwxr-xr-x 2 parallels parallels 4096 May 13 22:29 Downloads
-rw-r--r-- 1 parallels parallels 11759 Mar 16 02:09 .face
lrwxrwxrwx 1 parallels parallels 5 Mar 16 02:09 .face.icon -> .face
drwx------ 3 parallels parallels 4096 Jun 7 11:53 .gnupg
drwxr-xr-x 3 parallels parallels 4096 Mar 16 02:23 .local
drwxr-xr-x 2 parallels parallels 4096 May 13 22:29 Music
drwxr-xr-x 2 parallels parallels 4096 May 13 22:30 .parallels
drwxr-xr-x 2 parallels parallels 4096 May 13 22:29 Pictures
-rw-r--r-- 1 parallels parallels 807 Mar 16 02:09 .profile
drwxr-xr-x 2 parallels parallels 4096 May 13 22:29 Public
drwxr-xr-x 4 parallels parallels 4096 May 13 22:33 .recon-ng
drwxr-xr-x 2 parallels parallels 4096 May 13 22:29 Templates
drwxr-xr-x 2 parallels parallels 4096 May 13 22:29 Videos
-rw------- 1 parallels parallels 77 May 13 10:12 .zsh_history
-rw-r--r-- 1 parallels parallels 8381 Mar 16 02:09 .zshrc
Mã:
┌──(parallels㉿kali-linux-2021-1)-[~]
└─$ history
1 cd /home/parallels
2 echo $PATH
3 echo $USER
4 echo $PWD
5 echo $HOME
6 export test="Whitehat"
7 echo $test
8 curl <http://testphp.vulnweb.com/>
9 ping clear
10 env
11 clear
12 ls -la
Thực tế khi pentest cần lưu lại history phục vụ ghi chú thì mình thường ít khi sử dụng bash history mặc định của Linux vì lý do đơn giản là history chỉ lưu lại các lệnh chứ không có kết quả các output của các lệnh này. Ví dụ muốn xem lại lệnh nmap thì cũng khó.
Mình hay sử dụng lệnh script trên linux để lưu các kết quả in ra màn hình vào 1 file và sau đó xem lại khi cần hoặc đưa vào ghi chú trong quá trình tấn công.
Mã:
┌──(parallels㉿kali-linux-2021-1)-[~]
└─$ script test-site-testphp-vulnweb-com.log
Script started, output file is test-site-testphp-vulnweb-com.log
Restored session: Tue Jun 15 15:55:02 +07 2021
Mã:
┌──(parallels㉿kali-linux-2021-1)-[~]
└─$ cat test-site-testphp-vulnweb-com.log
Script started on 2021-06-15 16:18:53+07:00 [TERM="xterm-256color" TTY="/dev/pts/0" COLUMNS="178" LINES="46"]
┌──(parallels㉿kali-linux-2021-1)-[~]
└─$ nikto -host=http://testphp.vulnweb.com/
- Nikto v2.1.6
---------------------------------------------------------------------------
+ Target IP: 18.192.172.30
+ Target Hostname: testphp.vulnweb.com
+ Target Port: 80
+ Start Time: 2021-06-15 16:19:21 (GMT7)
---------------------------------------------------------------------------
+ Server: nginx/1.19.0
+ Retrieved x-powered-by header: PHP/5.6.40-38+ubuntu20.04.1+deb.sury.org+1
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS
+ The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type
+ /clientaccesspolicy.xml contains a full wildcard entry. See <http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx>
+ /clientaccesspolicy.xml contains 12 lines which should be manually viewed for improper domains or wildcards.
+ /crossdomain.xml contains a full wildcard entry. See <http://jeremiahgrossman.blogspot.com/2008/05/crossdomainxml-invites-cross-site.html>
+ ERROR: Error limit (20) reached for host, giving up. Last error: error reading HTTP response
+ Scan terminated: 20 error(s) and 7 item(s) reported on remote host
+ End Time: 2021-06-15 16:20:43 (GMT7) (82 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
┌──(parallels㉿kali-linux-2021-1)-[~]
└─$ exit
Script done on 2021-06-15 16:21:48+07:00 [COMMAND_EXIT_CODE="0"]
Bài tập:
- Sử dụng lệnh man để tìm hiểu về lệnh find trong linux
- Giả sử hệ thống của bạn bị xâm nhập do đó bạn cần tìm kiếm các file thay đổi trong hệ thống trong vòng 1 ngày. Viết lệnh tìm kiếm và hiển thị các file bị thay đổi trong vòng 1 ngày bởi user khác user root ( Gợi ý: Lệnh find )
- Tìm kiếm các thư mục có quyền 777
From M4rcus. Happy Hacking
Chỉnh sửa lần cuối bởi người điều hành: