Active Members Fi8sVrs Posted January 26, 2013 Active Members Report Posted January 26, 2013 (edited) Unhide is a forensic tool to find hidden processes and TCP/UDP ports that are hidden via rootkits, LKMs, or other techniques.Linux README:**-Unhide-** http://www.unhide-forensics.infoUnhide is a forensic tool to find hidden processes and TCP/UDP ports by rootkits / LKMsor by another hiding technique.// Unhide (unhide-linux or unhide-posix)// -------------------------------------Detecting hidden processes. Implements six main techniques1- Compare /proc vs /bin/ps output2- Compare info gathered from /bin/ps with info gathered by walking thru the procfs. ONLY for unhide-linux version3- Compare info gathered from /bin/ps with info gathered from syscalls (syscall scanning).4- Full PIDs space ocupation (PIDs bruteforcing). ONLY for unhide-linux version5- Compare /bin/ps output vs /proc, procfs walking and syscall. ONLY for unhide-linux version Reverse search, verify that all thread seen by ps are also seen in the kernel.6- Quick compare /proc, procfs walking and syscall vs /bin/ps output. ONLY for unhide-linux version It's about 20 times faster than tests 1+2+3 but maybe give more false positives.// Unhide_rb// ---------It's a back port in C language of the ruby unhide.rbAs the original unhide.rb, it is roughly equivalent to "unhide-linux quick reverse" :- it makes three tests less (kill, opendir and chdir),- it only run /bin/ps once at start and once for the double check,- also, its tests are less accurate (e.g.. testing return value instead of errno),- processes are only identified by their exe link (unhide-linux also use cmdline and "sleeping kernel process" name),- there's little protection against failures (failed fopen or popen by example),- there's no logging capability.It is very quick, about 80 times quicker than "unhide-linux quick reverse"// Unhide-TCP// ----------Identify TCP/UDP ports that are listening but not listed in sbin/ss or /bin/netstat.It use two methods: - brute force of all TCP/UDP ports availables and compare with SS/netstat output.- probe of all TCP/UDP ports not reported by netstat.// Files// -----unhide-linux.c -- Hidden processes, for Linux >= 2.6unhide-linux.hunhide-tcp.c -- Hidden TCP/UDP Portsunhide-tcp-fast.cunhide-tcp.hunhide-output.c -- Common routines of unhide toolsunhide-output.hunhide_rb.c -- C port of unhide.rb (a very light version of unhide-linux in ruby)unhide-posix.c -- Hidden processes, for generic Unix systems (*BSD, Solaris, linux 2.2 / 2.4) It doesn't implement PIDs brute forcing check yet. Needs more testing Warning : This version is somewhat outdated and may generate false positive. Prefer unhide-linux.c if you can use it.changelog -- As the name implied log of the change to unhideCOPYING -- License file, GNU GPL V3LEEME.txt -- Spanish version of this fileLISEZ-MOI.TXT -- French version of this fileNEWS -- Release notesREADME.txt -- This filesanity.sh -- unhide-linux testsuite fileTODO -- Evolutions to do (any volunteers ?)man/unhide.8 -- English man page of unhideman/unhide-tcp.8 -- English man page of unhide-tcpman/fr/unhide.8 -- French man page of unhideman/fr/unhide-tcp.8 -- French man page of unhide-tcp// Compiling// ---------If you ARE using a Linux kernel >= 2.6 gcc -Wall -O2 --static -pthread unhide-linux*.c unhide-output.c -o unhide-linux gcc -Wall -O2 --static unhide_rb.c -o unhide_rb gcc -Wall -O2 --static unhide-tcp.c unhide-tcp-fast.c unhide-output.c -o unhide-tcp ln -s unhide unhide-linuxElse (Linux < 2.6, *BSD, Solaris and other Unice) gcc --static unhide-posix.c -o unhide-posix ln -s unhide unhide-posix// Using// -----You MUST be root to use unhide-linux and unhide-tcp.Examples: # ./unhide-linux -vo quick reverse # ./unhide-linux -vom procall sys # ./unhide_rb # ./unhide-tcp -flov # ./unhide-tcp -flovs// License// -------GPL V.3 (http://www.gnu.org/licenses/gpl-3.0.html)// Greets// ------A. Ramos (aramosf@unsec.net) for some regexpsunspawn (unspawn@rootshell.be) CentOS supportMartin Bowers (Martin.Bowers@freescale.com) CentOS supportLorenzo Martinez (lorenzo@lorenzomartinez.homeip.net) Some ideas to improve and betatestingFrancois Marier (francois@debian.org) Author of the man pages and Debian supportJohan Walles (johan.walles@gmail.com) Find and fix a very nasty race condition bugJan Iven (jan.iven@cern.ch) Because of his great improvements, new tests and bugfixingP. Gouin (patrick-g@users.sourceforge.net) Because of his incredible work fixing bugs and improving the performanceFrançois Boisson for his idea of a double check in brute testLeandro Lucarella (leandro.lucarella@sociomantic.com) for the fast scan method and his factorization work for unhide-tcpDownload Linux 2012-12-29Windows:Windows// WinUnhide Compare info gathered from wmic command with info gathered from openprocess and Toolhelp// WinUnhide-TCPFirst it lists open TCP/UDP ports through GetTcpTable and GetUdpTable and then identify hidden ports using bind() bruteforcing Download WindowsAuthored by YJesus | Site unhide-forensics.infohttp://packetstormsecurity.com/files/119776/Unhide-Forensic-Tool-20121229.html Edited January 26, 2013 by Fi8sVrs Quote